罗马数字转阿拉伯数字

作者:神秘网友 发布时间:2021-10-13 07:24:05

罗马数字转阿拉伯数字

罗马数字转阿拉伯数字

罗马数字时位置记数法吗

根据《计算机科学概论》可以知道,位置记数法的概念为:

位置记数法(positional notation):一种表达数字的系统,数位按顺序排列,每个数位有一个位值,数字的值是每个数位和位值的乘积之和。

又根据罗马数字转换阿拉伯数字0~3999,关于罗马数字的一些概念:

有两条须注意掌握:
1.基本数字 Ⅰ、X 、C 中的任何一个、自身连用构成数目、或者放在大数的右边连用构成数目、都不能超过三个;放在大数的左边只能用一个;
2.不能把基本数字 V 、L 、D 中的任何一个作为小数放在大数的左边采用相减的方法构成数目;放在大数的右边采用相加的方式构成数目、只能使用一个;
相同的数字连写、所表示的数等于这些数字相加得到的数、如:Ⅲ=3;
小的数字在大的数字的右边、所表示的数等于这些数字相加得到的数、 如:Ⅷ=8、Ⅻ=12;
小的数字(限于 I、X 和 C)在大的数字的左边、所表示的数等于大数减小数得到的数、如:Ⅳ=4、Ⅸ=9;
正常使用时、连写的数字重复不得超过三次;
在一个数的上面画一条横线、表示这个数扩大 1000 倍。

很明显,罗马数字根本不是位置记数法。比如数字III,是无法根据它的数位和位值的乘积算出来等于3的。

将八位学号转换成罗马数字

从链接中可知,十进制数字的范围是0~3999,但是我的学号是八位,该如何转换
通过交流,发现:

  • 十进制数字的范围是0~3999,最高四位数
  • 我们的学号是八位数
  • 分割成四位 四位两端,每一段均在这个范围之内

因此,决定将学号分成两个部分,四位四位一转换。
我的学号是20211408,即 2021和1408,其中:

  • 2021转换成罗马数字为MMXXI
  • 1408转换成罗马数字为MCDVIII
    即:我的学号2021 1408 转换为罗马数字为MMXXI MCDVIII

然而,我发现一个算不上是问题的问题:
按照2021 1408进行分段,前者很正确,但是后者并非如此,说到底,我这个学号的含义是2021年入学,在1系4班,8号,本质上,我是8号,而不是1408号,因此我又试着将1408分为1、4和08进行转换

  • 1转换成罗马数字为I
  • 4转换为罗马数字为IV
  • 08转换成罗马数字为VIII
    即:此时我的学号转换为罗马数字是MMXXI I IV VIII

这样,能一眼看出我是于2021年入学,在1系4班,学号为8号

这纯粹是我的个人看法

当然,这样子分法数字转化就很简单了……

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

借鉴了蛮多网上的资料的,比如:
https://www.jb51.net/article/138306.htm
https://www.cnpython.com/qa/566044
https://www.cnblogs.com/qiuyuyu/p/9755608.html

最后上传至码云:
罗马数字转阿拉伯数字

对代码原理尝试进行了理解,暂时还未理出头绪,最终理解成果会后续继续编辑,并写在第四周学习总结里。


本文章教程介绍完毕,更多请访问跳墙网其他文章教程!

罗马数字转阿拉伯数字 相关文章

  1. Leetcode罗马数字转整数

    Leetcode罗马数字转整数 题目:罗马数字转整数 难度:Easy 对于这个题目,可以简单理解为对于每一个罗马数字都进行解析,然后与下一个罗马数字进行比较,这样就能得到几种情况。1.如果左边的罗马数字小于右边的,直接大的...

  2. Leetcode:罗马数字转整数

    Leetcode:罗马数字转整数 Leetcode:罗马数字转整数 首先将所有的组合可能性列出并添加到哈希表中 然后对字符串进行遍历,由于组合只有两种,一种是 1 个字符,一种是 2 个字符,其中 2 个字符优先于 1 个字符 先判断两个字符...

  3. LeetCOde之罗马数字转

    LeetCOde之罗马数字转 思路 首先将所有的组合可能性列出并添加到哈希表中 然后对字符串进行遍历,由于组合只有两种,一种是 1 个字符,一种是 2 个字符,其中 2 个字符优先于 1 个字符 先判断两个字符的组合在哈希表中是否存...

  4. 13.罗马数字转整数

    13.罗马数字转整数 原本想着数组存放7个罗马数字,但是又想到I=1不可能用a[1000]=M来表示,这样数组就太大了,转而想哈希表,HasMap、unordered_map,无序map。 1.注意i++、++i、i+1、1+i区别; 2.insert插入类型与map定义类型对应,因而使...

  5. leetcode-罗马数字转整数

    题意 罗马数字包含以下七种字符: I , V , X , L , C , D 和 M 。 字符 数值I 1V 5X 10L 50C 100D 500M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。27 写做 XXVII , 即为 XX + V + II 。 通常情况下,罗马数...

  6. 整数转罗马数字笔记

    整数转罗马数字笔记 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。 通常...

  7. excel阿拉伯数字转中文大写

    方法一:公式转大写金额 我们在B2中输入公式: =TEXT(INT(I9),"[DBNUM2]")"元"TEXT(MID(I9,LEN(INT(I9))+2,1),"[DBNUM2]D角")TEXT(MID(I9,LEN(INT(I9))+3,1),"[DBNUM2]D分")"整" 按回车键,双击之后就能自动填充,迅速将小写的数字金额转为标准的会计的大写

  8. leetcode-罗马数字转整数

    leetcode-罗马数字转整数 题目链接:https://leetcode-cn.com/problems/roman-to-integer/ 这一题目关键是理解题意!!! 题目中说了,罗马数字中小的数字一般放在大的数字后面,但有特殊情况, 是有且只有6种 :IV/IX XL/XC CD/CM 所以不存在IL...

  9. python 中文大写转阿拉伯数字(金额)

    python :中文大写转阿拉伯数字(金额) 输入:金额的中文大写(字符串) 输出:阿拉伯数字(float或int型) 整数部分主要是利用正则表达式进行检索,将对应项的数字与单位列表的对应项相乘并求和,小数部分也是一样的手法...

  10. python 中文大写转阿拉伯数字(金额)

    python :中文大写转阿拉伯数字(金额) 输入:金额的中文大写(字符串) 输出:阿拉伯数字(float或int型) 整数部分主要是利用正则表达式进行检索,将对应项的数字与单位列表的对应项相乘并求和,小数部分也是一样的手法...

  11. [力扣C++]罗马数字转整数

    [力扣C++]罗马数字转整数 题目描述 通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示...

  12. LeetCode 12. 整数转罗马数字

    12. 整数转罗马数字 Difficulty: 中等 罗马数字包含以下七种字符: I , V , X , L , C , D 和 M 。 字符 数值I 1V 5X 10L 50C 100D 500M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII , 即为 XX +

  13. LeetCode12、整数转罗马数字

    LeetCode12、整数转罗马数字 文章目录 题目描述; 直接思维方法(一次ac) 官方题解 1、贪心算法 2:硬编码数字 题目描述; 整数转罗马数字 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 5...

  14. 罗马数字转整数 -- 算法

    一.我的解法,思路在代码注释中 需求: 罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 ...

  15. 4、罗马数字转整数(JAVA实现)

    4、罗马数字转整数(JAVA实现) 1、题目描述 (题目难度:简单) 2、示例 示例1:输入:III输出: 3示例2:输入:IV输出: 4示例3:输入:IX输出: 9示例4:输入:LVIII输出: 58解释: L = 50, V= 5, III = 3.示例5:输入:MCMXCIV输出: 1994解释: M = 1000, CM = 900, X...

  16. Leetcode Simple_13 罗马数字转整数

    Leetcode Simple_13 罗马数字转整数 我的思路 这题似乎没有什么特别的思路,两个指针一个now一个next,对可以特别组合的字符进行判断,如果next满足那个组合,就+特定的数字。 Java知识 获取String的某个index: String.charAt(index)

  17. LeetCode13. 罗马数字转整数

    LeetCode13. 罗马数字转整数 //13class Solution {public: int romanToInt(string s) { unordered_mapchar, intmp; mp['I'] = 1; mp['V'] = 5; mp['X'] = 10; mp['L'] = 50; mp['C'] = 100; mp['D'] = 500; mp['M'] = 1000; int ans = 0; for (int i = 0; i s

  18. 力扣13-罗马数字转整数

    力扣13-罗马数字转整数 题目: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II ...

  19. LeetCode5.整数转罗马数字

    LeetCode5.整数转罗马数字 文章目录 题目 思路一:彻底分解 思路二:贪心算法 题目 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1...

  20. Leetcode之整数转罗马数字

    Leetcode之整数转罗马数字 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。 通...

每天更新java,php,javaScript,go,python,nodejs,vue,android,mysql等相关技术教程,教程由网友分享而来,欢迎大家分享IT技术教程到本站,帮助自己同时也帮助他人!

Copyright 2021, All Rights Reserved. Powered by 跳墙网(www.tqwba.com)|网站地图|关键词