罗马数字和整型的关系

查了下罗马数字的进制与表示规律。 
首先是进制 
Roman numerals ( 罗马数字 ) : 
I = 1 
V = 5 
X =10 
L = 50 
C = 100 
D = 500 
M = 1000 
规律 
III = 1+1+1=3 
IV = 5-1=4 
VI = 5+1=6 
IX = 10-1=9 
XI = 10+1=11 
XXI = 10+10+1=21 
LXX=50+10+10=70 
LXXX=80 
XC=100-10=90 
,,,,,,,,,,,, 
如此,总结一下,数字表示从左往右数按照权值从大到小排列,跟阿拉伯数字规律差不多,区别是同样的数字只能连续出现3次,当表示4或者9的时候,需要将小权重的数字如X(10)放在大权重数字C(100)前,做减法。

好了,知道进制与表示规律后,这题思路简单,声明一个结构体,在其中存放权值与对应符号,然后对输入的罗马字符串一一匹配,累加即可。只是在碰到表示4或9及其他们的10倍、100倍等时候要进行判定,特殊处理。

posted @ 2017-06-15 17:21  mximo  阅读(384)  评论(0编辑  收藏  举报