Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

양의 정수를 로마 숫자로 변환하는 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