题目描述
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。给定一个整数,将其转为罗马数字。输入确保在 1 到 3999 的范围内。
字符 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
示例
输入: 3
输出: "III"
输入: 4
输出: "IV"
输入: 9
输出: "IX"
输入: 58
输出: "LVIII"
解释: L = 50, V = 5, III = 3.
输入: 1994
输出: "MCMXCIV"
解释: M = 1000, CM = 900, XC = 90, IV = 4.
代码
public String intToRoman(int num) {
int[] values = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
String[] romStrs = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
StringBuilder result = new StringBuilder();
for (int i = 0; i < values.length && num >= 0; i++) {
while (num >= values[i]) {
result.append(romStrs[i]);
num = num - values[i];
}
}
return result.toString();
}
网友评论