20202427-张启辰《Python3初学:罗马数字转阿拉伯数字》

20202427-张启辰《Python3初学:罗马数字转阿拉伯数字》

1.规则

罗马数字是古罗马使用的一种记数系统,在阿拉伯数字传入之前使用较为普遍,目前大家可能在钟表、日历、文章的排序 、建筑物、元素周期表等方面还能见到它,因为它的使用在逐渐减少。罗马数字使用了7种符号,其中每个符号对应的阿拉伯数字为:I - 1、V - 5、X - 10、L - 50、C - 100、D - 500、M - 1000,其它罗马数字均有这7种符号组合而成。

罗马数字记数规则
重复数次:
一个罗马数字重复几次,就表示这个数的几倍。例如MMM表示1000×3=3000。
右加左减:
在较大的罗马数字的右边记上较小的罗马数字,表示大数字加小数字。例如MD表示1500。
在较大的罗马数字的左边记上较小的罗马数字,表示大数字减小数字。例如CM表示900。
左减的数字有限制,仅限于I、X、C、M。比如45不可以写成VL,只能是XLV。
但是,左减时不可跨越一个位值。比如,99不可以用IC(100-1)表示,而是用XCIX([100-10]+[10-1])表示。(等同于阿拉伯数字每位数字分别表示。)
左减数字必须为一位,比如8写成VIII,而非IIX。
右加数字不可连续超过三位,比如14写成XIV,而非XIIII。(见下方“数码限制”一项。)
加线乘千:
在罗马数字的上方加上一条横线,表示将这个数乘以1000,即是原数的1000倍。
同理,如果上方有两条横线,即是原数的1000000(10002)倍。
数码限制:
同一数码最多只能连续出现三次,如40不可表示为XXXX,而要表示为XL。

2.局限性

输入错误的罗马数字也会得到结果

3.Python3解决

posted @ 2020-10-25 00:04  20202427张启辰  阅读(365)  评论(2编辑  收藏  举报