T12. Integer to Roman【Medium】
题目
给一个整数,将其转换为罗马数字。
输入范围:1~3999
思路
个人觉得这题看代码就好了解法还是很简洁的
① 了解罗马字的规则
② 封装成数组,对应1000,2000,3000,100,200等,每个数组对应十进制 09(间隔1),0090(间隔10),000900(间隔100),00003000(间隔1000,因为最高到3999,所以后面不用了)
代码
代码取自 Top Solution,稍作注释
这代码,还有什么好解释的吗..
public class Solution {
//因为最大到3999,所以到“MMM”就够了
String M[] = {"", "M", "MM", "MMM"};
String C[] = {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};
String X[] = {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};
String I[] = {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
//巧妙的一一对应
return M[num/1000] + C[(num%1000)/100]+ X[(num%100)/10] + I[num%10];
}
补充
这里就补充一下罗马字符好啦~主要是方便大家找,下面是链接: