题目:

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。

字符          数值

I             1

V             5

X             10

L             50

C             100

D             500

M             1000

给定一个罗马数字,将其转换成整数。输入确保在 1 到 3999 的范围内。

例如,罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做  XXVII, 即为 XX + V + II 。

通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:

I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。

X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。

C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。

分析:

本题目笔者的思路为:

①循环把两个相邻元素组合在一起;

②判断组合后的元素属于哪种类型,然后记录对应的数值;

运行代码:

def luomazhuanshuzi(a):

b1 = ['I','V','X','L','C','D','M','*','IV','IX','XL','XC','CD','CM']

# '*'是为了使得后面的while运行方便而设置的,使得while能运行到初始a的最后一个元素

b2 = [1,5,10,50,100,500,1000,0,4,9,40,90,400,900]

a = list(a)

a.append('*')

b = []

i = 0

while(i

运行结果:

注:本题目来源于:https://mp.weixin.qq.com/s?__biz=MzUyMzc3NzI2Nw==&mid=2247489477&idx=2&sn=f5beb6adc608d4d5c853735251319062&chksm=fa363259cd41bb4ffa76bc079adc6378eacad062227d24b2fba90b71c0ec282eb08572361809&scene=21#wechat_redirect

该来源有附上C、C++、JAVA的实现代码,有需要的朋友可以访问链接了解。

如有侵权,请联系删除。

本博文的思路及代码为笔者自己思考并编码实现的结果,如有错误,欢迎指出,也欢迎交流~

python编程比赛初赛 组成最小罗马数字_Python每日一编程小练习(2019.06.13)——罗马数转换为整数...相关推荐

  1. python编程比赛初赛 组成最小罗马数字_leetcode 题解 12python3@ 通过使用罗马数字的最单元位来构造数组 + 构造数字算法...

    题目描述 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II , ...

  2. python返回序列中的最小元素_python实现获取序列中最小的几个元素

    本文实例讲述了python实现获取序列中最小的几个元素.分享给大家供大家参考. 具体方法如下: import heapq import random def issorted(data): data ...

  3. python适合多大小孩学好拼音_Python 适合初学编程的人学吗?

    机械专业,自学编程,同样由C(C++)开始,有编程基础后转学Python 个人认为,Python非常适合编程入门 作为一种解释性语言,Python的特点之一就是简单.易学.让程序员可以关注与算法本身而 ...

  4. python编程求圆的面积案例_Python实用案例编程入门:第七章 调式手段

    本章的主题为调试手段,这是程序开发必不可少的步骤,也是占用时间最多的环节.在程序员的正常开发工作中,调试工作至少占据1/3的时间,而实际编码工作相对占用实际比较少.因此,无论您是初学者,还是编程兴趣爱 ...

  5. python监听多个udp端口_Python的Socket编程过程中实现UDP端口复用的实例分享

    关于端口复用 一个套接字不能同时绑定多个端口,如果客户端想绑定端口号,一定要调用发送信息函数之前绑定( bind )端口,因为在发送信息函数( sendto, 或 write ),系统会自动给当前网络 ...

  6. python 进程池阻塞和非阻塞_python 之 并发编程(进程池与线程池、同步异步阻塞非阻塞、线程queue)...

    9.11 进程池与线程池 池子使用来限制并发的任务数目,限制我们的计算机在一个自己可承受的范围内去并发地执行任务 池子内什么时候装进程:并发的任务属于计算密集型池子内什么时候装线程:并发的任务属于IO ...

  7. python是一种面相什么语言_Python面相对象编程的知识总结

    1.类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法,对象是类的实例. 2.类变量:类变量在整个实例化的对象中是公用的,类变量定义在类中且在函数 ...

  8. python井字棋最大最小算法_python井字棋算法及代码

    井字棋盘看起来像一个大的井字符号(#),有9 个空格,可以包含X.O 或 关于落子问题 由于只能采用键盘输入,所以需要对棋盘进行坐标表示: 即直接用1-9个9个数字来表示位置, 7|8|9 -+-+- ...

  9. 孝感市小学生机器人编程比赛_索尼做了个小学生机器人编程比赛,有几个还挺有想象力...

    "在我小的时候,幻想得到的是铁臂阿童木,铁人 28 号.今天,我很高兴看到你们都做出了属于自己的机器人." 说这话的人是应庆大学文学部教授, 60 岁的安藤寿康.他是今年第二届索尼 ...

最新文章

  1. https 请求白屏_记一次HTTPS性能优化
  2. Torch not compiled with CUDA enabled
  3. RabbitMQ配置环境变量后启动不了的解决方法
  4. java.util.concurrent 包下面的所有类
  5. 模拟MapReduce编程的程序案例(用于统计文本中单词出现频率)
  6. 中国农业大学计算机专业在陕西录取分数线,陕西考生,400多分被985大学录取,分不高的考生“捡漏“注意这几点...
  7. pythonappend用法_python中append实例用法总结
  8. jenkins docker 自动部署 构建_jenkins+docker+vue项目的自动部署环境
  9. 现代软件工程讲义 3 代码规范与代码复审
  10. PostGIS中dbf file (.dbf) can not be opened.shapefile import failed
  11. sql 新建表 alter_SQL ALTER表
  12. Protel99SE 50个常见问题解决方法与技巧
  13. continous attractor neural networks - 连续吸引子网络(ing)
  14. [高考作文] 秋细雨VS叶闲花
  15. wordpress插件_2020年5个最佳WordPress电子商务插件比较
  16. 基于硬件的C(C++)语言程序设计教程5:更改Atmel Studio的语言设置
  17. macOS 10.15 支持的 xcode版本
  18. J2EE高级开发框架小课程之Spring框架2——Spring容器作用域,生命周期,Spring管理对象之间依赖关系
  19. 面稀土,战码家(二)
  20. 北大集训2020游记

热门文章

  1. 闲情赋计算机考试题目,2015年9月计算机应用基础统考题库-网考计算机应用基础真题六.doc...
  2. 资料 | Python的14张思维导图(可后台下载)
  3. 发AI-Native新品,升级中台能力:看百度智能云的全力进化
  4. 【Vue】1308- Vue3 中可以帮助你早点下班的 9 个开发技巧
  5. iPhone出货量逆势增长,中国手机企业的市场份额或大幅下滑
  6. Gerber 文件钻孔(过孔)偏移的问题解决办法
  7. 易语言源码免杀,会的来,重谢
  8. 小米5miui10android,小米又一款手机适配Android 10!MIUI开发版暂停,米粉别着急!...
  9. oracle打开打印功能,Oracle打印日历功能
  10. oracle ovca_软而优则硬 甲骨文一体机启“大物移云”