题目链接:力扣
思路:把关系表示出来,从大的开始拼凑
代码:
var intToRoman = function(num) {
const map = {
'M': 1000,
'CM': 900,
'D': 500,
'CD': 400,
'C': 100,
'XC': 90,
'L': 50,
'XL': 40,
'X': 10,
'IX': 9,
'V': 5,
'IV': 4,
'I': 1,
}
const roman = [];
for (const symbol in map) {
if (map.hasOwnProperty(symbol)) {
while (num >= map[symbol]) {
num -= map[symbol];
roman.push(symbol);
}
}
if (num == 0) {
break;
}
}
return roman.join('');
};
结果: