classSolution{//总共13种情况表示数按倒序排列int values[]=newint[]{1000,900,500,400,100,90,50,40,10,9,5,4,1};String letters[]=newString[]{"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};publicStringintToRoman(int num){StringBuffer res =newStringBuffer();for(int i =0; i < values.length; i ++){int value = values[i];String letter = letters[i];//贪心:每次选择不大于num的最大的数,然后拼接对应的符号//用while因为可能有连续相同的值while(num >= value){
num -= value;
res.append(letter);}if(num ==0){break;}}return res.toString();}}