阿拉伯数字和罗马数字互转

罗马数字是位置计数吗?

《计算机科学概论》中对位置计数法的定义是:

一种表达数字的系统,数位按顺序排列,每个数位有一个位置,数字的值是每个数位和位值的乘积之和


而罗马数字转换的规则,百度给出了两条:

1.基本数字 Ⅰ、X 、C 中的任何一个、自身连用构成数目、或者放在大数的右边连用构成数目、都不能超过三个;放在大数的左边只能用一个;
2.不能把基本数字 V 、L 、D 中的任何一个作为小数放在大数的左边采用相减的方法构成数目;放在大数的右边采用相加的方式构成数目、只能使用一个;


因此,罗马数字并不是位置计数法,这也可以举一个最简单的例子,比如I表示1,II表示2,III表示3,这说明罗马数字表示的值根本不是每个数位和位值的乘积之和。

缺点

罗马数字的缺点就是罗马数字对现代人书写来说太复杂,再加上罗马数字没有表示0的,所以后人就很少使用了。

把自己的8位学号转换成罗马数字

通过网上查找的资料(https://baike.so.com/doc/5330839-5566013.html),可以知道罗马数字是以三个阿拉伯数字为一段进行的表示,所以,首先我把自己的学号拆成三段,即20,211,420,所以根据转换规则,我可以将自己的三段数字分别转换成XX,CCXI,CDXX。所以我的8位学号表示如图所示

用Python写一个罗马数字转化为阿拉伯数字的程序

码云
注:码云中的代码可实现阿拉伯数字与罗马数字的双向转化
效果如下图所示


通过所写的程序可以验证得到自己的转化没有问题

参考网站

1.https://blog.csdn.net/a197p/article/details/75475456
2.https://baike.so.com/doc/5330839-5566013.html
3.https://www.jb51.net/article/138306.htm
4.https://www.cnblogs.com/derezzed/articles/8119592.html

posted @ 2021-10-13 21:12  シバ鳥  阅读(216)  评论(0编辑  收藏  举报