罗马数字的计算方法和利用python实现其转换(1)

  • Post author:
  • Post category:python




罗马数字总共有7个:


I(1),v(5),

X(10)、L(50)、C(100)、D(500)和M(1000)




运算规则:






重复数次

:一个罗马数字重复几次,就表示这个数的几倍。

例如III表示的就是3








右加左减



在较大的罗马数字的右边记上较小的罗马数字,表示大数字加小数字。

例如vIII表示的就是8












在较大的罗马数字的左边记上较小的罗马数字,表示大数字减小数字。

例如IV表示的就是4

















左减的数字有限制

,仅限于I、X、C。

比如45不可以写成VL,只能是XLV



















左减时不可跨越一个位数 ,

99不可以用IC(100 – 1)表示,而是用XCIX([100 – 10] + [10 – 1])表示。





















左减数字必须为一位,比如8写成VIII,而非IIX。























右加数字不可连续超过三位,比如14写成XIV,而非XIIII。















加线乘千:






1 在罗马数字的上方加上一条横线或者加上下标的Ⅿ,表示将这个数乘以1000,即是原数的1000倍。










数码限制:










同一数码最多只能出现三次,如40不可表示为XXXX,而要表示为XL










个位:




{



"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"


}








将10进制数转化成罗马数字不难,只需将其位数切分,分别匹配就可实现



难的是将罗马数字转化成十进制数































版权声明:本文为qq_27094299原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。