罗马数字转化

 

1.罗马数字是位置计数吗?它的缺点是什么?

先看位置计数的定义::一种表达数字的系统,数位按照顺序排列 ,每个数位有一个位值,数字的值是每个数位和位值的乘积之和。——《计算机科学导论》p25

罗马数字计数法

  1. 相同的数字连写,所表示的数等于这些数字相加得到的数,如 Ⅲ=3;

  2. 小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数,如 Ⅷ=8、Ⅻ=12;

  3. 小的数字(限于 Ⅰ、X 和 C)在大的数字的左边,所表示的数等于大数减小数得到的数,如 Ⅳ=4、Ⅸ=9;

  4. 在一个数的上面画一条横线,表示这个数增值 1,000 倍,如

    img (参考:百度百科)

罗马计数法不存在数位,不存在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上发现了及其巧妙的一些解法。但看不懂。。。

 

 

 

 

 

posted @ 2020-10-17 09:20  20201322陈俊池  阅读(232)  评论(0编辑  收藏  举报