羅馬數字轉換阿拉伯數字(Java版,考慮較為全面) - li002qwe的專欄 - 部落格頻道 - CSDN.NET
一. 前言
朋友的作業,本想在網上找個現成的改改就行啦。可是一番google、baidu之後,找到的要麼不是Java版本的,要麼就是考慮的不夠全面。遂,筆者自己寫了個,如有考慮不全面的地方,望大家能夠指出。下面進入正題。
二. 羅馬數字規則
羅馬數字無表示零的數。
表示數的基本方法:除I、X、C位於大數後作為加數,位於大數前作為減數外,一般把若干羅馬基本數字寫在一起,它表示的數字等於各個數字的和。
1. 重寫: III(3) XX(20) CC(200)
2. 左減: IX(9) XL(40) CD(400)
3. 右加: VII(7) XI(11) LX(60)
4. 綜合前三種方法:XLV(L-X+V,45) LXII(L+X+I+I,62)
若在數字上方加一橫線,表示增大1000倍。(此規則由於如果輸入,故程式中未實現)
注意點:
1. I、X、C在大數右邊(即相加時)不能連續超過三個,在大數左邊(即相減時)只能用一個。
2. V、L、D不能用於大數左邊(相減),只能用於大數右邊(相加),且只使用一個。
3. V、X左邊小數只用I;L、C左邊小數只用X;D、M左邊小數只用C。