您的位置:首页 > 其它

12. Integer to Roman

2017-06-13 17:26 330 查看

背景



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

完成题目索引

http://blog.csdn.net/daigualu/article/details/73008186
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: