羅馬數字轉換為整數

2021-08-01 19:54:33 字數 1315 閱讀 8214

給定乙個羅馬數字 s

s,將羅馬數字轉換成整數。

如羅馬數字iiiiiiivv分別代表數字 1, 2, 3, 4, 51,

2,3,

4,5。

首先要來了解一下羅馬數字表示法,基本字元有 7

7 個:ivxlcdm,分別表示 11、5

5、1010

、505

0、10010

0、50050

0、100010

00。在構成數字的時候,有下列規則:

1、相同的數字連寫,所表示的數等於這些數字相加得到的數,如:iii= 3=3

;2、小的數字在大的數字的右邊,所表示的數等於這些數字相加得到的數, 如:viii= 8=8

xii= 12=1

2;3、小的數字,(限於xc)在大的數字的左邊,所表示的數等於大數減小數得到的數,如:iv= 4=4

ix= 9=9

;4、正常使用時,連寫的數字重複不得超過三次。

輸入乙個羅馬數字字串,其對應的數字為 s(1 \leq s \leq 3999)s(

1≤s≤

3999

)。輸出對應的整數 ss。

樣例輸入

cxxiii

樣例輸出

123
思路:分析羅馬數字的特點,發現,羅馬數字的當前字元和前乙個字元的規律:
1.當前字元和前乙個字元相等那麼,結果暫時加入總數
2.當前字元大於前乙個字元,那麼結果是當前字元的大小減去前面的字元數和
3.當前字元小於前乙個字元,那麼直接加入總數。
所以需要記錄當前字元的前乙個字元的大小,字元相等時候的累加和,總的大小。這三個變數。
最後給出源**:
public static int romantoint(string s)  else 

lastv = curv;

}result += sub;

return result;

}public static int getromanvalue(char c)

羅馬數字轉換為整數

羅馬數字包含以下七種字元 i,v,x,l,c,d 和 m。字元 數值 i 1 v 5 x 10 l 50 c 100 d 500 m 1000 例如,羅馬數字 2 寫做 ii 即為兩個並列的 1。12 寫做 xii 即為 x ii 27 寫做 xxvii,即為 xx v ii 通常情況下,羅馬數字中...

python實現羅馬數字轉換為整數

輸入 iii 輸出 3 輸入 iv 輸出 4 輸入 ix 輸出 9 輸入 lviii 輸出 58 解釋 l 50,v 5,iii 3.輸入 mcmxciv 輸出 1994 解釋 m 1000,cm 900,xc 90,iv 4.其實實現的思路很簡單,我們就先建立羅馬數字與阿拉伯數字對應的字典,然後再...

20190502 羅馬數字轉換為數字

羅馬數字包含以下七種字元 i,v,x,l,c,d 和 m。字元 數值 i 1 v 5 x 10 l 50 c 100 d 500 m 1000 例如,羅馬數字 2 寫做 ii 即為兩個並列的 1。12 寫做 xii 即為 x ii 27 寫做 xxvii,即為 xx v ii 通常情況下,羅馬數字中...