強森是一名歷史學家,在閱讀歷史文獻時,有些文獻會以羅馬數字代表年、月、日,有些文獻則以阿拉伯數字代表年、月、日。
因此強森常常需要將歷史文獻中的年份在羅馬數字與阿拉伯數字間做轉換。
請寫一個程式幫強森自動的進行數字表示法的轉換。
羅馬數字表示法說明:羅馬數字只用到七個符號:{I, V, X, L, C, D, M}。這七個符號分別代表1, 5, 10, 50, 100, 500, 1000。
用這七個符號(可重複使用)依不同的順序排列,就可以造出任何十進位阿拉伯數字。
羅馬數字轉換到阿拉伯數字的規則很簡單,基本上只需將所有羅馬數字符號所代表的數字加總
但是如果有兩個相鄰的羅馬數字符號其左邊的符號小於右邊的符號時
則這兩個羅馬數字符號所代表的阿拉伯數字則為右邊的羅馬數字減掉左邊的羅馬數字。
例如MMCMXCIX = M + M + CM + XC +IX = 1000 + 1000 + (1000-100) + (100-10) + (10-1) = 2999。
羅馬數字不會有連續三個以上的由小到大的情形。
例如,IVX 就不是一個合法的羅馬數字。
從阿拉伯數字轉換成羅馬數字的時候,請統一從高位數字開始轉換,如1989,可看1000+900+80+9
轉換時由千位數開始先輸出M,然後接著依序輸出百位數CM、十位數LXXX、個位數IX,得出MCMLXXXIX。