思路
就是模拟规则
代码
java
class Solution {
public String intToRoman(int num) {
Parameter parameter = new Parameter();
parameter.num = num;
parameter.result = "";
while (parameter.num != 0){
convert(parameter);
}
return parameter.result;
}
private void convert(Parameter parameter) {
String number = Integer.toString(parameter.num);
char firstChar = number.charAt(0);
if (firstChar == '4'){
handle4(parameter);
} else if (firstChar == '9') {
handle9(parameter);
} else if (parameter.num >= 1000) {
parameter.result = parameter.result + "M";
parameter.num = parameter.num - 1000;
} else if (parameter.num >= 500) {
parameter.result = parameter.result + "D";
parameter.num = parameter.num - 500;
}else if (parameter.num >= 100) {
parameter.result = parameter.result + "C";
parameter.num = parameter.num - 100;
}else if (parameter.num >= 50) {
parameter.result = parameter.result + "L";
parameter.num = parameter.num - 50;
}else if (parameter.num >= 10) {
parameter.result = parameter.result + "X";
parameter.num = parameter.num - 10;
}else if (parameter.num >= 5) {
parameter.result = parameter.result + "V";
parameter.num = parameter.num - 5;
}else if (parameter.num >= 1) {
parameter.result = parameter.result + "I";
parameter.num = parameter.num - 1;
}
}
private void handle9(Parameter parameter) {
if (parameter.num >= 900){
parameter.result = parameter.result + "CM";
parameter.num = parameter.num - 900;
} else if (parameter.num >= 90) {
parameter.result = parameter.result + "XC";
parameter.num = parameter.num - 90;
} else if (parameter.num >= 9) {
parameter.result = parameter.result + "IX";
parameter.num = parameter.num - 9;
}
}
private void handle4(Parameter parameter) {
if (parameter.num >= 400){
parameter.result = parameter.result + "CD";
parameter.num = parameter.num - 400;
} else if (parameter.num >= 40) {
parameter.result = parameter.result + "XL";
parameter.num = parameter.num - 40;
} else if (parameter.num >= 4) {
parameter.result = parameter.result + "IV";
parameter.num = parameter.num - 4;
}
}
}
class Parameter{
int num;
String result;
}