先看位置计数的定义::一种表达数字的系统,数位按照顺序排列 ,每个数位有一个位值,数字的值是每个数位和位值的乘积之和。——《计算机科学导论》p25
罗马数字计数法
-
相同的数字连写,所表示的数等于这些数字相加得到的数,如 Ⅲ=3;
-
小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数,如 Ⅷ=8、Ⅻ=12;
-
小的数字(限于 Ⅰ、X 和 C)在大的数字的左边,所表示的数等于大数减小数得到的数,如 Ⅳ=4、Ⅸ=9;
-
在一个数的上面画一条横线,表示这个数增值 1,000 倍,如
(参考:百度百科)
罗马计数法不存在数位,不存在0,以上横线表倍数,不符合位置计数法定义。
2.转化自己的8位学号
2020 1322
MMXX MCCCXXII
3. python 转化
参考:https://www.jb51.net/article/138306.htm
比较惭愧,只是照打了沂水寒城这位作者的代码,甚至还砍掉了数字转罗马部分。对于一些语法,循环结构都没掌握。
https://leetcode-cn.com/problems/roman-to-integer/solution/debugxiang-jie-pian-luo-ma-shu-zi-zhuan-zheng-shu-/
在leetcode上发现了及其巧妙的一些解法。但看不懂。。。