Chúng tôi bắt buộc phải viết một hàm JavaScript nhận một số la mã dương và trả về biểu diễn la mã của nó.
Các giá trị sau đây chúng tôi sẽ sử dụng để đặt số la mã cho số nguyên dương -
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' };
Ví dụ
Mã để chuyển đổi số nguyên dương sang số la mã như sau -
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));
Đầu ra
Và đầu ra trong bảng điều khiển sẽ là - / p>
CCCXLV