給定乙個羅馬數字 ss
s,將羅馬數字轉換成整數。
如羅馬數字i
,ii
,iii
,iv
,v
分別代表數字 1,2,3,4,51, 2, 3, 4, 51,
2,3,
4,5。
首先要來了解一下羅馬數字表示法,基本字元有 77
7 個:i
、v
、x
、l
、c
、d
、m
,分別表示 11
1、55
5、101010
、505050
、10010010
0、50050050
0、1000100010
00。在構成數字的時候,有下列規則:
1、相同的數字連寫,所表示的數等於這些數字相加得到的數,如:iii
=3= 3=3
;2、小的數字在大的數字的右邊,所表示的數等於這些數字相加得到的數, 如:viii
=8= 8=8
;xii
=12= 12=1
2;3、小的數字,(限於ⅰ
、x
和c
)在大的數字的左邊,所表示的數等於大數減小數得到的數,如:iv
=4= 4=4
;ix
=9= 9=9
;4、正常使用時,連寫的數字重複不得超過三次。
輸入乙個羅馬數字字串,其對應的數字為 s(1≤s≤3999)s(1 \leq s \leq 3999)s(
1≤s≤
3999
)。輸出對應的整數 sss。
樣例輸入
cxxiii
樣例輸出123
水題錯了好多次,還是不夠細心。。#include #include #include #include #include #include #include #include using namespace std;
int func1(int n)
int main()
,,,,};
mapmymap;
for(int i=0; i<4; i++)
for(int j=1; j<((i==3)?4:10); j++)
mymap[com[i][j]]=j*func1(i);
string s;
while(cin>>s)
{int ans=0,str=0,end=4,size=s.size();
while(str
計蒜客 整數轉換成羅馬數字
給定乙個整數 numnumnu m,將整數轉換成羅馬數字。如 1,2,3,4,51,2,3,4,51,2,3,4,5 對應的羅馬數字分別為i,ii,iii,iv,v等,更詳細的說明見此 鏈結。第一行輸入乙個整數 num 1 num 3999 num 1 leq num leq 3999 nu m 1...
計蒜客 整數轉換成羅馬數字
整數轉換成羅馬數字 給定乙個整數 numnu m,將整數轉換成羅馬數字。如 1,2,3,4,51,2,3,4,51,2,3,4,5 對應的羅馬數字分別為i,ii,iii,iv,v等,更詳細的說明見此 鏈結。第一行輸入乙個整數 num 1 leq num leq 3999 nu m 1 num 399...
計蒜客 羅馬數字轉換成整數
給定乙個羅馬數字 s,將羅馬數字轉換成整數。如羅馬數字i,ii,iii,iv,v分別代表數字 1,2,3,4,5。首先要來了解一下羅馬數字表示法,基本字元有 77 個 i v x l c d m,分別表示 1 5 10 50 100 500 1000。在構成數字的時候,有下列規則 1 相同的數字連寫...