class Solution {
public String intToRoman(int num) {
//使用value里面的数 依次跟num比较 —— for(int i=0;i<value.length;i++)
// 如果num> value[i] 就把value[i]对应的symbol[i]加入stringbuilder
int[] value = {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"};
StringBuilder result=new StringBuilder();
for(int i=0;i<value.length;i++){//用value约束
// value 从1000(最大的开始找),找到小于num的最大的数
// while的原因 2020 就需要加入两个M
while(num>=value[i]){//不用if 因为比如30是 则需要三个XXX
result.append(symbols[i]);
num-=value[i];
}
if(num==0){//用num约束:没有遍历完value中所有的值就已经得出结果
break;
}
}
//不用reverse,先加进去的在高位,符合要求
return result.toString();
}
}