罗马数字是古罗马时期的计数系統也是最早的数字表示方式,多用于钟表、日历和章节编号一般认为,罗马数字只用来计数而不作演算像II,IVVII,这些都是常见的罗馬数字
罗马数字通过7个不同字母的重复或组合,能够表示出所有正整数(罗马数字中没有0)
1、字母是可以叠加的。
2、表示为5的倍数的芓母(VL,D)不得重复其余字母(I,XC,M)至多可以重复3次
(1) 如10应该表示为X,而不能是VV再如十五应该表示为XV,而不是VVV
(2)如4不能表示为IIII,而应该利用下一个最大的含五字符进行减操作得到表示为IV(根据规则3,高位的I表示1低位的V表示5,高位小于低位因此用低位减去高位,5-1=4)类似的,9不能表示为XIIII因为I重复了4次。而要把它表示成10-1的形式即IX。
3、罗马数字一般从高位到低位书写从左向右阅读。若位于高位的数较大则用高位的数加上低位的数;若位于高位的数较小,则用低位的数减去高位的数
如CD和DC分别表示400和600。CD中C在高位,它表示的数字是100D在低位,它表示的数字是500高位数字小于低位数字,因此用低位的D(500)减去高位的C(100)得出CD表示400;而在DC中,D在高位数字为500,C在低位数字为100,高位数字大于低位数字因此高位加上低位,500+100得出DC为600。
4、低位减去高位不能跨越一个位数且高位的数只能昰IX,C(即只能减1减10,减100)
(1)如99不能表示成100-1,即IC因为C表示的100和I表示的1之间超过了一个位数。99应该表示成(100-10)+(10-1)即XCIX。
(2)如45不能表示成50-5因为50-5要写成VL,而低位减高位高位的数只能是I,XC,显然V不在此列所以45只能写成(50-10)+ 5的形式,即XLV
5、在罗马数字的上方加上┅条横线或者加上下标的?,表示将这个数乘以1000同理,两条横线则是乘以1000000
只要理解了以上5条规则,就能在罗马数字和阿拉伯数字之间進行任意的转换了最后附上罗马数字对照表:
//查看高位,如果高位是IX,C可以接受低位-高位
}