javascript - 在 JavaScript 中将数字转换为罗马数字

标签 javascript roman-numerals

如何将整数转换为 roman numerals

function romanNumeralGenerator (int) {

}

例如,请参阅以下示例输入和输出:

1 = "I"
5 = "V"
10 = "X"
20 = "XX"
3999 = "MMMCMXCIX"

注意:只支持 1 到 3999 之间的数字

最佳答案

我在这个博客上使用 google 发现了一个不错的博客:

http://blog.stevenlevithan.com/archives/javascript-roman-numeral-converter

function romanize (num) {
    if (isNaN(num))
        return NaN;
    var digits = String(+num).split(""),
        key = ["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM",
               "","X","XX","XXX","XL","L","LX","LXX","LXXX","XC",
               "","I","II","III","IV","V","VI","VII","VIII","IX"],
        roman = "",
        i = 3;
    while (i--)
        roman = (key[+digits.pop() + (i * 10)] || "") + roman;
    return Array(+digits.join("") + 1).join("M") + roman;
}

关于javascript - 在 JavaScript 中将数字转换为罗马数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9083037/

相关文章:

javascript - Vue.js 命名为 javascript 钩子(Hook)

javascript - 使用 Node js 和 fs 列出目录、子目录及其文件

java - 罗马整数 - 但使用 "different"罗马数字系统

java - 我如何处理将阿拉伯数字转换为罗马数字的家庭作业?

javascript - JS字符串变量: why aren´t special characters substituted?

javascript - 如何使 jQuery 表格单元格 (td) 可单击以运行函数?

javascript - 如何更改 JS 中的子元素顺序?

r - 如何在R中检查字符串是否包含罗马数字?

java - 将罗马数字转换为阿拉伯数字