計蒜客 羅馬數字轉換成整數

2021-08-02 09:58:56 字數 1355 閱讀 6137

給定乙個羅馬數字 ss

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

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

2,3,

4,5。

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

7 個:ivxlcdm,分別表示 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、小的數字,(限於xc)在大的數字的左邊,所表示的數等於大數減小數得到的數,如: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 相同的數字連寫...