将给定数字转换为罗马数字。
所有罗马数字答案均应以大写形式提供。
关于罗马数字的解释详情请看链接。
代码:
function convertToRoman(num) {
var map = new Map([
[0, ''],
[1, 'I'],
[2, 'II'],
[3, 'III'],
[4, 'IV'],
[5, 'V'],
[6, 'VI'],
[7, 'VII'],
[8, 'VIII'],
[9, 'IX'],
[10, 'X'],
[20, 'XX'],
[30, 'XXX'],
[40, 'XL'],
[50, 'L'],
[60, 'LX'],
[70, 'LXX'],
[80, 'LXXX'],
[90, 'XC'],
[100, 'C'],
[200, 'CC'],
[300, 'CCC'],
[400, 'CD'],
[500, 'D'],
[600, 'DC'],
[700, 'DCC'],
[800, 'DCCC'],
[900, 'CM']
]);
var a = Math.floor(num / 1000);
var b = Math.floor((num % 1000) / 100)*100;
var c = Math.floor((num % 100) / 10)*10;
var d = num % 10;
var tho = '';
var han = map.get(b);
var ten = map.get(c);
var bit = map.get(d);
while (a > 0) {
tho += 'M';
a--;
}
return tho + han + ten + bit;
}