整数转罗马数字
题目
给定一个整数,将其转换成罗马数字。
返回的结果要求在1-3999的范围内。说明
什么是 罗马数字?
https://en.wikipedia.org/wiki/Roman_numerals
https://zh.wikipedia.org/wiki/%E7%BD%97%E9%A9%AC%E6%95%B0%E5%AD%97
http://baike.baidu.com/view/42061.htm样例
4 -> IV
12 -> XII
21 -> XXI
99 -> XCIX
更多案例,请戳 http://literacy.kent.edu/Minigrants/Cinci/romanchart.htm题解
把1-9个1,1-9个10,1-9个100和1-3个1000准备好,后直接查表即可。
public class Solution {
/**
* @param n The integer
* @return Roman representation
*/
public String intToRoman(int n) {
String roman[][]={
{"","I","II","III","IV","V","VI","VII","VIII","IX"},
{"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"},
{"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"},
{"","M","MM","MMM"}
};
StringBuilder res = new StringBuilder();
res.append(roman[3][n / 1000 % 10]);
res.append(roman[2][n / 100 % 10]);
res.append(roman[1][n / 10 % 10]);
res.append(roman[0][n % 10]);
return res.toString();
}
}
Last Update 2016.11.17