罗马数字主要特点:
基本字符 |
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; } }