12. Integer to Roman 整數轉化為羅馬數字
阿新 • • 發佈:2019-02-19
Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
羅馬數字:
基本字元 |
I |
V |
X |
L |
C |
D |
M |
相應的阿拉伯數字表示為 |
1 |
5 |
10 |
50 |
100 |
500 |
1000 |
1、相同的數字連寫,所表示的數等於這些數字相加得到的數,如:Ⅲ = 3;
2、小的數字在大的數字的右邊,所表示的數等於這些數字相加得到的數, 如:Ⅷ = 8;Ⅻ = 12;
3、小的數字,(限於Ⅰ、X 和C)在大的數字的左邊,所表示的數等於大數減小數得到的數,如:Ⅳ= 4;Ⅸ= 9;
4、正常使用時,連寫的數字重複不得超過三次。(錶盤上的四點鐘“IIII”例外)
5、在一個數的上面畫一條橫線,表示這個數擴大1000倍。
class Solution { public String intToRoman(int num) { String M[] = {"", "M", "MM", "MMM"}; //千位:0 1000 2000 3000 String C[] = {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"}; //百位:0 100 200 ... D:500 CD:600 D:700 ...String X[] = {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"}; //十位:0 10 20 ... String I[] = {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"}; //個位:0 1 2 3 4 ... return M[num/1000] + C[(num%1000)/100]+ X[(num%100)/10] + I[num%10]; } }