給定乙個羅馬數字 s
s,將羅馬數字轉換成整數。
如羅馬數字i
,ii
,iii
,iv
,v
分別代表數字 1, 2, 3, 4, 51,
2,3,
4,5。
首先要來了解一下羅馬數字表示法,基本字元有 7
7 個:i
、v
、x
、l
、c
、d
、m
,分別表示 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、小的數字,(限於ⅰ
、x
和c
)在大的數字的左邊,所表示的數等於大數減小數得到的數,如: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) elselastv = 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 通常情況下,羅馬數字中...