Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
給定一個整數,把它轉換成羅馬數字。
輸入可以保證在1到3999之間。
下圖是轉換規則。
1
2
3
4
5
6
7
8
9
I
II
III
IV
V
VI
VII
VIII
IX
10
20
30
40
50
60
70
80
90
X
XX
XXX
XL
L
LX
LXX
LXXX
XC
100
200
300
400
500
600
700
800
900
C
CC
CCC
CD
D
DC
DCC
DCCC
CM
下面的程序用的是窮舉,即把上面的表格用if else 寫了一遍。當然這課表也是有規律的,如1-3開頭的是重復,4-5截取後一個字符,6-8又是依次添一個尾字符。
public static String intToRoman(int num) { StringBuffer buf = new StringBuffer(); int dddd = num / 1000; int ddd = num % 1000 / 100; int dd = num % 1000 % 100 / 10; int d = num % 1000 % 100 % 10; for(int i=0;i
整數和羅馬數字的轉換規則見此 http://www.mathsisfun.com/roman-numerals.html 。