20202427-张启辰《Python3初学:罗马数字转阿拉伯数字》

1.规则

罗马数字是古罗马使用的一种记数系统,在阿拉伯数字传入之前使用较为普遍,目前大家可能在钟表、日历、文章的排序 、建筑物、元素周期表等方面还能见到它,因为它的使用在逐渐减少。罗马数字使用了7种符号,其中每个符号对应的阿拉伯数字为:I - 1、V - 5、X - 10、L - 50、C - 100、D - 500、M - 1000,其它罗马数字均有这7种符号组合而成。

罗马数字记数规则

重复数次:

一个罗马数字重复几次,就表示这个数的几倍。例如MMM表示1000×3=3000。

右加左减:

在较大的罗马数字的右边记上较小的罗马数字,表示大数字加小数字。例如MD表示1500。

在较大的罗马数字的左边记上较小的罗马数字,表示大数字减小数字。例如CM表示900。

左减的数字有限制,仅限于I、X、C、M。比如45不可以写成VL,只能是XLV。

但是,左减时不可跨越一个位值。比如,99不可以用IC(100-1)表示,而是用XCIX([100-10]+[10-1])表示。(等同于阿拉伯数字每位数字分别表示。)

左减数字必须为一位,比如8写成VIII,而非IIX。

右加数字不可连续超过三位,比如14写成XIV,而非XIIII。(见下方“数码限制”一项。)

加线乘千:

在罗马数字的上方加上一条横线,表示将这个数乘以1000,即是原数的1000倍。

同理,如果上方有两条横线,即是原数的1000000(10002)倍。

数码限制:

同一数码最多只能连续出现三次,如40不可表示为XXXX,而要表示为XL。

2.局限性

输入错误的罗马数字也会得到结果

3.Python3解决

20202427-张启辰《Python3初学:罗马数字转阿拉伯数字》的更多相关文章

  1. 58. 分析、测试与总结:罗马数字和阿拉伯数字的转换[roman to integer and integer to roman in c++]

    [本文链接] http://www.cnblogs.com/hellogiser/p/roman-to-integer-and-integer-to-roman.html [题目] 给出一个罗马数字, ...

  2. 一张图理清 Python3 所有知识点

    如果你前几天一直有关注 GitHub Trending,那你应该会留意到「Python3 in one pic」这个开源项目. 很多人学习python,不知道从何学起.很多人学习python,掌握了基 ...

  3. LeetCode-13. Roman to Integer(罗马数字转阿拉伯数字)

    1.题目描述 Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range f ...

  4. [leetcode]罗马数字和阿拉伯数字相互转换

    罗马转阿拉伯 public int romanToInt(String s) { /* 从左到右依次根据哈希表进行加法 如果是"CM"900这种情况就要执行+M和-C处理 */ i ...

  5. Python3中文教程

    搜索 此文档来源自网络 安装 PYTHON❝ Tempora mutantur nos et mutamur in illis. (时光流转,吾等亦随之而变.) ❞ — 古罗马谚语 深入欢迎来到 Py ...

  6. Android 锁屏软件MemoryDebris测试报告

    目 录 项目基本信息 第1章         引言 1.1        编写目的 1.2        项目背景 1.3        参考资料 1.4        术语和缩略语 第2章      ...

  7. shufe前辈名师

    前辈名师 姓名 现职/原职 郭秉文 中国现代大学之父.国立东南大学校长.哥伦比亚大学教育学博士,该校第一任校长.为了纪念郭秉文先生,勉励优秀学子,郭夏瑜女士在上海财经大学等校设立了“郭秉文奖学金” 马 ...

  8. Day3-scrapy爬虫下载图片自定义名称

    学习Scrapy过程中发现用Scrapy下载图片时,总是以他们的URL的SHA1 hash值为文件名,如: 图片URL:http://www.example.com/image.jpg 它的SHA1 ...

  9. Python语言系列-10-数据库

    MySQL 基础环境准备 readme.txt 作者:Alnk(李成果) 版本:v1.0 安装mysql数据库 略 创建student库 # mysql> create database stu ...

随机推荐

  1. if else与switch for与foreach

    if...else...适用于变量判断 switch适用于常量判断(switch只判断一次,if else 判断多次) foreach只适用于集合和数组查询(foreach不支持增加删除操作) for ...

  2. Centos-将文件内容输出到标准输出-cat

    cat 将文件内容输出到标准输出 相关选项 -n 显示行号,包括空行 -b 显示行号,不包括空行 -A 显示制表符为 ^I ,结尾符为 $ 应用 1. 清空文件 cat /dev/null > ...

  3. 概率派VS贝叶斯派

    机器学习中的MLE和MAP两大学派的争论: 频率学派 - Frequentist - Maximum Likelihood Estimation (MLE,最大似然估计): 频率学派认为世界是确定的, ...

  4. Linux常用命令代码大全

    arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 – (SMBIOS / DMI ...

  5. JDK1.8前_HashMap的扩容机制原理

    最近在研究hashmap的扩容机制,作为一个小白,相信我的理解,对于一些同样是刚刚接触hashmap的白白是有很很大的帮助,毕竟你去看一些已经对数据结构了解透彻的大神谈hashmap的原理等,人家说的 ...

  6. python双向链表的实现

    python双向链表和单链表类似,只不过是增加了一个指向前面一个元素的指针,下面的代码实例了python双向链表的方法 示意图: python双向链表实现代码: # -*- coding: utf-8 ...

  7. LCD显示器缺陷自动化检测方案

    很牛的测试 参考: 1.https://www.radiantvisionsystems.com/ 2.https://www.radiantvisionsystems.com/node/275 LC ...

  8. mysql时间SQL

    生成随机时间 -- 带时分秒 select FROM_UNIXTIME(UNIX_TIMESTAMP('20100101000000')+ROUND(RAND()*(UNIX_TIMESTAMP()- ...

  9. JavaScript筛选数组

    要求: 从一个数组中,筛选出符合条件的元素,放到新数组中. 有一数组[1, 19, 2, 8, 9, 15, 11, 7, 6, 4, 18, 10],将超过10的元素删除. 代码实现: var ar ...

  10. 第3天 | 12天搞定Python,用PyCharm编写代码

    有了运行环境还不够,在程序的江湖里,还得有一把趁手的"兵器". 工欲善其事,必先利其器,在进行Python开发时,可选择 IDE挺多的,其中,以PyCharm. Eclipse+P ...