12. Integer to Roman
来源:互联网 发布:vendor.bundle.js 位置 编辑:程序博客网 时间:2024/06/08 01:16
12. Integer to Roman
题目
题目的意思很简单:将整数转为罗马数字表示。
解题思路
1、首先,先介绍一下罗马数字的7个基本单元“I(1)、V(5)、X(10)、L(50)、C(100)、D(500)、M(1000)”。
2、接着让我们看一下数字转罗马数字的一些规则:
1)相同数字连写不超过3次。
2)小的数字在大的数字的左边时,表示大数减小数。但是小的数字仅限于I、X、C三个。所以除了上面7种还有的补充单元包括:IV(4)、IX(9)、XL(40)、XM(90)、CD(400)、CM(900)。
3)相减时不能跨两位相减。比如99不能够写成IC(100-1),而应该写成XCIX(100-10+(10-1))。
4)相加时,大数在小数的左边。
3、根据上述规则,解题的思路如下:
1)构建两个数组:roNum存放{“I”,”IV”,”V”,”IX”,”X”,”XL”,”L”,”XC”,”C”,”CD”,”D”,”CM”,”M”};inNum存放{1,4,5,9,10,40,50,90,100,400,500,900,1000}。
2)将数字依次与inNum中的数字进行比较,注意是从inNum中从后往前进行比较。如果大于当前索引位置的值,则保存当前索引位置对应的罗马数字。比如520,那么先将D存下来。
3)将原数字更新值为减去刚存的罗马数字的值,即520-500=20。继续往下比较。直到将inNum的全部数字遍历完毕。返回存储的罗马字符串。
代码
阅读全文
0 0
- 12.Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 处理高并发、大数据存储的网站技术架构
- bzoj 3329: Xorequ
- Struts 2中<s:bean>标签的用法
- 数据结构学习笔记9--栈和队列的顺序存储结构
- 类的const成员函数
- 12. Integer to Roman
- L2-010. 排座位
- 微信模板消息发送实例
- openstack创建的云主机不能访问外网,不能ping www.baidu.com
- Linux安装java环境
- Unity中让游戏对象消失或隐藏的几种方法
- maven项目中,添加依赖后,出现"Dependency 'xxxx‘ not found"解决过程
- a++ 与 ++a
- 10.16考试总结