原题:(频率4)
Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
题意:把Integer转换为罗马数,范围在1-3999
代码和思路:
class Solution {
public String intToRoman(int num) {
int[] values = {1000,900,500,400,100,90,50,40,10,9,5,4,1};
String[] strs = {"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};
StringBuilder sb = new StringBuilder ();
int i = 0;
while(num>0){
//num大于values中的哪一个,就用num减去它,并把它对应的罗马字符加入StringBuilder
while(num>=values[i]){
num -= values[i];
sb.append(strs[i]);
}
i++;
}
return sb.toString();
}
}