題目連結:
題目意譯:
羅馬數字有七個相異符號:I 、 V 、 X 、 L 、 C 、 D 以及 M 。
符號 值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
例如: 2 在羅馬數字表示法中被寫為 II ,就是兩個 1 並排在一起形成 2 ; 12 被寫作 XII ,即 X + II;數字 27 寫為 XXVII,則是 XX + V + II 。
羅馬數字基本上由大到小、從左至右書寫。但是,數字 4 的表示法並非為 IIII ,而是 IV 。因為寫在 V 前面的 I 代表我們應該要減去那個 I 值而形成了 4 。同樣地, 9 被寫為 IX 而非 XIIII。有六種情況會使用到這種減法規則:
I 可以放在 V (5) 和 X (10) 前面,形成 4 和 9.
X 可以放在 L (50) 和 C (100) 前面,形成 40 和 90.
C 可以放在 D (500) 和 M (1000) 前面,形成 400 和 900.
給定一整數,將其轉為羅馬數字。
限制:
1 ≦ num ≦ 3999
範例測資:
範例 1:
輸入: num = 3
輸出: "III"
範例 2:
輸入: num = 4
輸出: "IV"
範例 3:
輸入: num = 9
輸出: "IX"
範例 4:
輸入: num = 58
輸出: "LVIII"
解釋: L = 50、V = 5、III = 3。
範例 5:
輸入: num = 1994
輸出: "MCMXCIV"
解釋: M = 1000、CM = 900、XC = 90 且 IV = 4。
解題思維:
羅馬數字有十三種符號的「組合」,分別是:
"I",代表 1。
"IV",代表 4。
"V",代表 5。
"IX",代表 9。
"X",代表 10。
"XL",代表 40。
"L",代表 50。
"XC",代表 90。
"C",代表 100。
"CD",代表 400。
"D",代表 500。
"CM",代表 900。
"M" ,代表 1000。
我們只需要從代表值較大的符號組合開始看起,當目前數字 num 所剩的值 ≧ 目前符號組合之值,就表示我們應使用該符號組合,並將數字 num 減去該組合所代表的值。
掃完所有符號之後便可以得到所求。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。