96. Integer to Roman
2016-01-26 22:54
309 查看
Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
分析:
将一个数字转化为罗马字符串表示。
大数左边加上小数就是把大数减去这个小数."M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"分别对应1000,900,500,400,100,90,50,40,10,9,5,4,1。以最左边为最大的字符为原则,从大到小判断num的值。
Input is guaranteed to be within the range from 1 to 3999.
分析:
将一个数字转化为罗马字符串表示。
大数左边加上小数就是把大数减去这个小数."M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"分别对应1000,900,500,400,100,90,50,40,10,9,5,4,1。以最左边为最大的字符为原则,从大到小判断num的值。
/** * 将一个数字转化为罗马字符串表示。 * 大数左边加上小数就是把大数减去这个小数.I(1),V(5),X(10),L(50),C(100),D(500),M(1000)。 * 以最左边为最大的字符为原则,从大到小判断num的值。 */ public String intToRoman(int num) { StringBuffer sb = new StringBuffer(); String symbol[]={"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"}; int value[]= {1000,900,500,400,100,90,50,40,10,9,5,4,1}; int i=0; while(num!=0){ while(num>=value[i]){/*先从罗马数字可以表示的最大值开始依次往后换算*/ sb.append(symbol[i]); num=num-value[i]; } i++; } return new String(sb); }
相关文章推荐
- Python简单的拼写检查
- 基于tiny4412的Linux内核移植 -- eMMC驱动移植(六)
- swift手记-6
- python中常见的列表生成式
- java内部类总结,举例
- Android第一天
- hdu5612 Baby Ming and Matrix games (dfs加暴力)
- 3DES加密算法简析
- linux性能调试----cpu篇
- C++入门小程序练习
- iptables防火墙管理详解
- XML——使用 XPath来定位信息+使用命名空间
- 九度OJ 题目1437:To Fill or Not to Fill
- 自动适配之LayoutConstriant代码适配
- leetcode 231. Power of Two
- Android Tombstone/Crash的log分析和定位
- 第一课:打开一个窗口
- vSAN 6.0设计与规模设定——混合架构与全闪存架构对比
- CentOs 基础知识
- Python List Pop