本站遷移

因為我最近租用了網路空間以及網域,
故本站已遷移至新網站~
這邊的資訊已經正在進行搬移的工作~
希望各位可以到新網站去逛XD

New Website:
http://knightzone.org/

搜尋此網誌

2011年1月18日 星期二

[Zerojudge]a013: 羅馬數字

這題可分成兩個部分來做,
一個是把羅馬數字變成阿拉伯數字,
另外一個是把阿拉伯數字變成羅馬數字。

羅馬數字變成阿拉伯數字就是,
遇到其羅馬字母就將結果加上其代表數值,
再判斷它前一個字母是不是小於它,
如果是就減掉前面那個小於它的值的兩倍。
(因為你在前面執行到它的時候有加的它的值,所以不僅要把多的去掉,
還要把它原本減一次的意思表示出來,導致要扣兩倍。)

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 意見:

Unknown 提到...

學長安安,可以問一下,為什麼不用#include cmath(or math.h)阿?

張貼留言