码迷,mamicode.com
首页 > 其他好文 > 详细

12. Integer to Roman

时间:2016-04-02 20:25:26      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:

罗马数字主要特点:

基本字符
I
V
X
L
C
D
M
相应的阿拉伯数字表示为
1
5
10
50
100
500
1000

1 基本数字,I,X,C。自身连用构成数目、或者放大在大数的右边连用构成数目、不可以超过三个;放在大数左边不能超过一个

2 基本数字 V L D 不可以作为小数放在大数左边来作为减数。放在大数的右边采用想家的方式构成数目、只能使用一个

3 V 和 X 左边小数字只能用 I

4 L 和 C 左边小数字只能用 X

5 D 和 M 左边小数字只能用 C

 

因此我们可以发现,对于罗马数字的一些划分,可以根据左减原则进行划分

public class Solution {
    public String intToRoman(int num) {
        String[] strs={"I","IV","V","IX","X","XL","L","XC","C","CD","D","CM","M"};
        int[] ints={1,4,5,9,10,40,50,90,100,400,500,900,1000};
        
        int temp=num;
        String res="";
        int len=strs.length;
        
        while(temp!=0)
        {
            for(int i=len-1;i>=0;)
            {
                if(temp>=ints[i])
                {
                    temp-=ints[i];
                    res+=strs[i];
                }
                else
                    i--;
            }
        }
        return res;
        
    }
}

 

12. Integer to Roman

标签:

原文地址:http://www.cnblogs.com/aguai1992/p/5348118.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!