在Java中编写一个函数来将一个整数转换为罗马数字表示
发布时间:2023-06-29 21:23:52
可以使用switch-case语句来实现将整数转换为罗马数字的函数。
public String intToRoman(int num) {
StringBuilder roman = new StringBuilder();
// 定义罗马数字和对应的整数值
int[] values = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
String[] symbols = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
// 依次对比整数与罗马数字对应的值
for (int i = 0; i < values.length; i++) {
while (num >= values[i]) {
num -= values[i];
roman.append(symbols[i]);
}
}
return roman.toString();
}
运行例子:
public static void main(String[] args) {
int num = 1994;
String roman = intToRoman(num);
System.out.println(roman); // 输出MCMXCIV
}
这个函数的时间复杂度是 O(1),因为存在一个有限的罗马数字和整数的对应关系。
需要注意的是,这里的函数假设输入的整数范围是1到3999。如果需要处理更大的整数范围,可以扩展values和symbols数组。
