FCC JavaScript 题二:罗马数字转换器

将给定数字转换为罗马数字。

所有罗马数字答案均应以大写形式提供。

关于罗马数字的解释详情请看链接。

代码:

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;
}
posted @ 2020-07-13 10:43  白熊爱料理  阅读(408)  评论(1编辑  收藏  举报