题目
罗马数字包含以下七种字符:
I
,V
,X
,L
,C
,D
和M
。给你一个整数,将其转为罗马数字。
代码
class Solution {
public String intToRoman(int num) {
String str = "";
String n = String.valueOf(num);
if (n.length() == 4) {
if (n.charAt(0) == '1') {
str = str + 'M';
num = num - 1000;
} else if (n.charAt(0) == '2') {
str = str + 'M' + 'M';
num = num - 2000;
} else if (n.charAt(0) == '3') {
str = str + 'M' + 'M' + 'M';
num = num - 3000;
}
}
if (num / 900 != 0) {
str = str + 'C' + 'M';
num = num - 900;
}
if (num / 500 != 0) {
str = str + 'D';
num = num - 500;
}
if (num / 400 != 0) {
str = str + 'C' + 'D';
num = num - 400;
}
while (num / 100 != 0) {
str = str + 'C';
num = num - 100;
}
if (num / 90 != 0) {
str = str + 'X' + 'C';
num = num - 90;
}
if (num / 50 != 0) {
str = str + 'L';
num = num - 50;
}
if (num / 40 != 0) {
str = str + 'X' + 'L';
num = num - 40;
}
while (num / 10 != 0) {
str = str + 'X';
num = num - 10;
}
if (num / 9 != 0) {
str = str + 'I' + 'X';
num = num - 9;
}
if (num / 5 != 0) {
str = str + 'V';
num = num - 5;
}
if (num / 4 != 0) {
str = str + 'I' + 'V';
num = num - 4;
}
while (num > 0) {
str = str + 'I';
num = num - 1;
}
return str;
}
}