12. Integer to Roman

Posted 阿怪123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了12. Integer to Roman相关的知识,希望对你有一定的参考价值。

罗马数字主要特点:

基本字符
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的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode Medium:12. Integer to Roman

12. Integer to Roman

12 Integer to Roman

12. Integer to Roman

12. Integer to Roman

12. Integer to Roman