要将一个整数转换为罗马数字,可以按照以下步骤进行。罗马数字使用以下符号表示:
- I(1)
- V(5)
- X(10)
- L(50)
- C(100)
- D(500)
- M(1000)
罗马数字规则如下:
- 重复数次:一个罗马数字重复几次,就表示这个数的几倍。例如:III = 3。
- 右加左减:小的数字在大的数字右边,就加上这个数字;小的数字在大的数字左边,就减去这个数字。例如:VI = 6, IV = 4。
代码实现
以下是一个将整数转换为罗马数字的 JavaScript 函数:
/**
* 将整数转换为罗马数字
* @param {number} num - 输入的整数
* @return {string} - 罗马数字字符串
*/
function intToRoman(num) {
const romanNumerals = [
["M", 1000],
["CM", 900],
["D", 500],
["CD", 400],
["C", 100],
["XC", 90],
["L", 50],
["XL", 40],
["X", 10],
["IX", 9],
["V", 5],
["IV", 4],
["I", 1],
];
let result = "";
for (const [roman, value] of romanNumerals) {
while (num >= value) {
result += roman;
num -= value;
}
}
return result;
}
// 示例使用
const number = 1994;
const roman = intToRoman(number);
console.log(roman); // 输出: "MCMXCIV"
代码解释
1. 定义罗马数字和对应的值
romanNumerals
数组包含罗马数字符号及其对应的整数值,从大到小排列,以便于按顺序处理。
2. 遍历罗马数字数组
- 对于每个罗马数字及其对应的值,检查输入的整数是否大于或等于该值。
- 如果是,则将该罗马数字添加到结果字符串中,并从输入整数中减去该值。
- 重复此过程直到输入整数小于该值,然后继续处理下一个罗马数字。
3. 返回结果
- 最终,
result
字符串包含了输入整数转换后的罗马数字表示形式。