Javascript 数字转罗马数字

了解罗马数字规则

罗马数字规则

代码

var Roman = ['I', 'V', 'X', 'L', 'C', 'D', 'M'];

function convert(num) {

    var e = 0, temp = num, result = [];

    while (temp > 0) {
        var n = temp % 10;
        temp = Math.floor(temp / 10);
        result.push(toRoman(n, e += 2));
    }

    console.log(result.reverse().join(''))

}
function toRoman(num, e) {
    var i = Roman[e - 2] ,v = Roman[e - 1], x = Roman[e];

    if (num === 0) {
        return '';
    } else if (num < 4) {
        return i.repeat(num);
    } else if (num == 4) {
        return i + v;
    } else if (num == 5) {
        return v;
    } else if (num < 9) {
        return v + i.repeat(num - 5);
    } else if (num == 9) {
        return i + x;
    }
}

convert(1984) // MCMLXXXIV
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容