這題可分成兩個部分來做,
一個是把羅馬數字變成阿拉伯數字,
另外一個是把阿拉伯數字變成羅馬數字。
羅馬數字變成阿拉伯數字就是,
遇到其羅馬字母就將結果加上其代表數值,
再判斷它前一個字母是不是小於它,
如果是就減掉前面那個小於它的值的兩倍。
(因為你在前面執行到它的時候有加的它的值,所以不僅要把多的去掉,
還要把它原本減一次的意思表示出來,導致要扣兩倍。)
P.S. 根據羅馬數字的規則,會有這種狀況的只有:IV、IX、XL、XC、CD、CM。
而把阿拉伯數字變成羅馬數字就以
M、CM、D、CD、C、XC、L、XL、X、IX、V、IV、I
這個順序把大於它的值一直減掉,然後一直輸出,即可得解。
[C++](4ms, 740KB)
1 意見:
學長安安,可以問一下,為什麼不用#include cmath(or math.h)阿?
張貼留言