背景
1-10的中间数:V(5)
10-100的中间数: L(50)
100-1000的中间数:500(D)
so
- I placed before V or X indicates one less, so four is IV (one less
than five) and nine is IX (one less than ten) - X placed before L or C indicates ten less, so forty is XL (ten less
than fifty) and ninety is XC (ten less than a hundred) - C placed before D or M indicates a hundred less, so four hundred is CD (a hundred less than five
hundred) and nine hundred is CM (a hundred less than a thousand)
For example, MCMIV is one thousand nine hundred and four, 1904 (M is a thousand, CM is nine hundred and IV is four).
原题
Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
代码实现
public string IntToRoman(int num) {
string[,] dict = {
{"","I","II","III","IV","V","VI","VII","VIII","IX"}, //1~9
{"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"}, //10~90
{"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"}, //100~900
{"","M","MM","MMM","","","","","",""} //1000~3000
};
StringBuilder sb = new StringBuilder();
for (int i = 3; i >=0; i--)
{
sb.Append(dict[i, num/(int)Math.Pow(10,i) % 10]);
}
return sb.ToString();
}
13.Roman to Integer
http://blog.csdn.net/daigualu/article/details/72867026
题库
Leetcode算法题目解决方案每天更新在github库中,欢迎感兴趣的朋友加入进来,也欢迎star,或pull request。https://github.com/jackzhenguo/leetcode-csharp