和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
};