根据题目描述,总共有一下罗马数字
转化的思想为:寻找不超过num的最大数值,然后让num减去这个最大数值,再去寻找不超过此的最大数值,依次循环,知道减去值为0结束。
class Solution {
public String intToRoman(int num) {
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"};
StringBuffer roman = new StringBuffer();
for(int i = 0;i<values.length;i++){
int value = values[i];
String symbol = symbols[i];
while(num >= value){
num = num - value;
roman.append(symbol);
}
if(num == 0){
break;
}
}
return roman.toString();
}
}
注意:开始处数组的表示方法,用大括号而不是中括号。注意这个地方。