阿拉伯数字和罗马数字互转
罗马数字是位置计数吗?
《计算机科学概论》中对位置计数法的定义是:
一种表达数字的系统,数位按顺序排列,每个数位有一个位置,数字的值是每个数位和位值的乘积之和
而罗马数字转换的规则,百度给出了两条:
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