leetcode-java-12. Integer to Roman
2016-08-22 10:54
337 查看
/* Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 to 3999. */ /* 基本字符和阿拉伯数字的对应 I-1 V-5 X-10 L-50 C-100 D-500 M-1000 (1)相同的数字连写、所表示的数等于这些数字相加得到的数、如:Ⅲ=3; (2)小的数字在大的数字的右边、所表示的数等于这些数字相加得到的数、 如:Ⅷ=8、Ⅻ=12; (3)小的数字、(限于 Ⅰ、X 和 C)在大的数字的左边、所表示的数等于大数减小数得到的数、如:Ⅳ=4、Ⅸ=9; (4)正常使用时、连写的数字重复不得超过三次; (5)在一个数的上面画一条横线、表示这个数扩大 1000 倍。 因为数字重复不得超过三次,因此数组是: [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] */ public class Solution { public String intToRoman(int num) { int[] values = {1000,900,500,400,100,90,50,40,10,9,5,4,1}; String[] romanValues = {"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"}; StringBuffer string = new StringBuffer(); for(int i = 0;i < values.length;i++) { while(num >= values[i]) { string.append(romanValues[i]); num -= values[i]; } } return string.toString(); } }
相关文章推荐
- Java中十进制和十六进制的相互转换方法
- Java中的匿名对象
- Java中的匿名对象
- Java中的匿名对象
- Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
- HashMap的神秘面纱
- 浅谈java的byte数组的不同写法
- 编写java程序访问spark环境
- Java中封装性的使用
- Thinking in Java——第十四章-类型信息
- Java中封装性的使用
- Java中封装性的使用
- spring data jpa 多表 报错记录
- Java基础回顾(一)
- MQTT IM通信 框架 java
- 全面了解java byte数组与文件读写
- Spring整理系列(17)————循序渐进了解spring事务管理的几种方式
- JAVA大数类
- Java-全排列-递归 详解
- 【Spring学习笔记五】-Bean的作用域