【AC學習筆記】羅馬數字轉換(Integer to Roman)
目標
可以將 1~ 3999 的正整數,轉換為羅馬數字
運用工具
String.prototype.repeat()
- 《維基百科 - 羅馬數字》
Step1.分析羅馬數字規則
- 羅馬數字:
首先,總共有7個羅馬數字為,Ⅰ(1),V(5),X(10),L(50),C(100),D(500),M(1000)
- 右加左減:
將小的數字放在大的數字右邊表示我們要表達的為左加右,且右加數字不得超過連續三位
EX. 6→Ⅵ 、 23→XXIII, 9則不得寫成VIIII
相反的,將小的數字放在大的數字左邊則表示右減左,且左減數字不得超過一位
EX. 4→IV 、 9→ IX , 8則不得寫成IIX
於是我們大概可以看出羅馬數字是按照每個位數組合而成的,例如:
Step2.設計資料結構及演算法
透過前面提到的規則我們找到了13種符號來組合出所有的數字,如下:
接下來我們可以使用Array或Object來存放數字及符號,這裡我是使用Array
最後運用迴圈來處理數字就可以啦↓
Step3.封裝成function就完成啦!
完整程式碼連結