123456789101112131415161718192021222324252627282930313233343536373839404142 |
- // 将阿拉伯数字转换为罗马数字
- function intToRoman(num) {
- if (num < 1) {
- return num;
- }
- const romanNumerals = [
- {limit: 1000000, roman: "M̄"}, // 使用 M̄ 表示 1000000
- {limit: 900000, roman: "C̄M̄"},
- {limit: 500000, roman: "D̄"},
- {limit: 400000, roman: "C̄D̄"},
- {limit: 100000, roman: "C̄"},
- {limit: 90000, roman: "X̄C̄"},
- {limit: 50000, roman: "L̄"},
- {limit: 40000, roman: "X̄L̄"},
- {limit: 10000, roman: "X̄"},
- {limit: 9000, roman: "ĪX̄"},
- {limit: 5000, roman: "V̄"},
- {limit: 4000, roman: "ĪV̄"}, // 使用 ĪV̄ 表示 4000
- {limit: 1000, roman: "M"},
- {limit: 900, roman: "CM"},
- {limit: 500, roman: "D"},
- {limit: 400, roman: "CD"},
- {limit: 100, roman: "C"},
- {limit: 90, roman: "XC"},
- {limit: 50, roman: "L"},
- {limit: 40, roman: "XL"},
- {limit: 10, roman: "X"},
- {limit: 9, roman: "IX"},
- {limit: 5, roman: "V"},
- {limit: 4, roman: "IV"},
- {limit: 1, roman: "I"}
- ];
- let roman = '';
- // 遍历罗马数字数组,将其值减去相应的阿拉伯数字
- for (let i = 0; i < romanNumerals.length; i++) {
- while (num >= romanNumerals[i].limit) {
- roman += romanNumerals[i].roman;
- num -= romanNumerals[i].limit;
- }
- }
- return roman;
- }
|