Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 to 3999.
解法:
参考:http://www.cnblogs.com/grandyang/p/4123374.html
转换法则如下:
基本字符 | I | V | X | L | C | D | M |
---|---|---|---|---|---|---|---|
相应的阿拉伯数字表示为 | 1 | 5 | 10 | 50 | 100 | 500 | 1000 |
例如整数 1437 的罗马数字为 MCDXXXVII, 我们不难发现,千位,百位,十位和个位上的数分别用罗马数字表示了。 1000 – M, 400 – CD, 30 – XXX, 7 – VII。
所以我们要做的就是用取商法分别提取各个位上的数字,然后分别表示出来:
100 – C
200 – CC
300 – CCC
400 – CD
500 – D
600 – DC
700 – DCC
800 – DCCC
900 – CM
我们可以分为四类,100到300一类,400一类,500到800一类,900最后一类。每一位上的情况都是类似的,代码如下:
1 |
class : |
近期评论