【leetcode】12. 整数转罗马数字

29 阅读1分钟

leetcode-12.png

13题互逆
把所有可能出现的数字建立一个map即可,顺序需要从大到小
从大到小遍历map,轮询减去当前的数字

var intToRoman = function (num) {
    let map = [
        [1000, 'M'],
        [900, 'CM'],
        [500, 'D'],
        [400, 'CD'],
        [100, 'C'],
        [90, 'XC'],
        [50, 'L'],
        [40, 'XL'],
        [10, 'X'],
        [9, 'IX'],
        [5, 'V'],
        [4, 'IV'],
        [1, 'I']
    ]
    let res = ''
    for (let [val, c] of map) {
        while (val <= num) {
            res += c
            num -= val
        }
    }
    return res
};