JavaScript程序将正整数转换为罗马数字

我们需要编写一个JavaScript函数,该函数接受一个正的罗马数字并返回其罗马表示形式。

我们将使用以下值来设置正整数的罗马数字-

const legend = { 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',

1000: 'M', 2000: 'MM', 3000: 'MMM', 4000: 'MMMM', 5000: 'MMMMM', 6000:

'MMMMMM', 7000: 'MMMMMMM', 8000: 'MMMMMMMM', 9000: 'MMMMMMMMM' };

示例

将正整数转换为罗马数字的代码如下-

const decimalToRoman = (num = 1) => {

   const legend = { 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',

   1000: 'M', 2000: 'MM', 3000: 'MMM', 4000: 'MMMM', 5000: 'MMMMM', 6000:

   'MMMMMM', 7000: 'MMMMMMM', 8000: 'MMMMMMMM', 9000: 'MMMMMMMMM' };

   const arr = num.toString().split("").reverse();

   let i = 1, k;

   for (k = 0; k < arr.length; k++) {

      arr.splice(k, 1, arr[k] * i);

      i *= 10;

   };

   const romansArray = [];

   for (i = 0; i < arr.length; i++) {

      romansArray.push(legend[arr[i]]||'');

   }

   return romansArray.reverse().join("");

}

console.log(decimalToRoman(345));

输出结果

控制台中的输出将是-/ p>

CCCXLV

以上是 JavaScript程序将正整数转换为罗马数字 的全部内容, 来源链接: utcz.com/z/321562.html

回到顶部