羅馬數字轉換成整數(注意羅馬數字的大小表示問題)

2021-07-24 21:13:32 字數 989 閱讀 4975



羅馬數字規則:

1, 羅馬數字共有7個,即i(1)、v(5)、x(10)、l(50)、c(100)、d(500)和m(1000)。

羅馬數字中沒有「0」。

2, 重複次數:乙個羅馬數字最多重複3次。

3, 右加左減:

在較大的羅馬數字的右邊記上較小的羅馬數字,表示大數字加小數字。

在較大的羅馬數字的左邊記上較小的羅馬數字,表示大數字減小數字。

4, 左減的數字有限制,僅限於i、x、c,且放在大數的左邊只能用乙個。

(*) v 和 x 左邊的小數字只能用ⅰ。

(*) l 和 c 左邊的小數字只能用x。

(*) d 和 m 左 邊的小數字只能用c。

實現**:

class solution

,,,};

int num=0,i;

for(i=0;iif(s[i]=='i') num+=1;

if(s[i]=='v')

if(i!=0 && s[i-1]=='i') num+=3;

else num+=5;

if(s[i]=='x')

if(i!=0 && s[i-1]=='i') num+=8;

else num+=10;

if(s[i]=='l')

if(i!=0 && s[i-1]=='x') num+=30;

else num+=50;

if(s[i]=='c')

if(i!=0 && s[i-1]=='x') num+=80;

else num+=100;

if(s[i]=='d')

if(i!=0 && s[i-1]=='c') num+=300;

else num+=500;

if(s[i]=='m') 

if(i!=0 && s[i-1]=='c') num+=800;

else num+=1000;

return num;}};

羅馬數字轉換成整數

時間限制 1000ms 記憶體限制 65536k 給定乙個羅馬數字 s s,將羅馬數字轉換成整數。如羅馬數字i,ii,iii,iv,v分別代表數字 1,2,3,4,51,2,3,4,5。首先要來了解一下羅馬數字表示法,基本字元有 77 個 i v x l c d m,分別表示 11 55 1010 ...

整數轉換成羅馬數字

編寫乙個將整數n 1 n 9999 轉換成羅馬數字。假如說我們有乙個數字22,那麼它轉換的方式為22 10 12 0 則肯定先有乙個x,接著12 10 2 0 則接著在x後面加上x 變為xx 2 1 1 0 則肯定後面還需要新增乙個i變為xxi,1 1 0 0 後面還要新增乙個i變為xxii。這樣我...

整數轉換成羅馬數字

時間限制 1000ms 記憶體限制 65536k 給定乙個整數 num 將整數轉換成羅馬數字。如 1,2,3,4,5 對應的羅馬數字分別為i,ii,iii,iv,v等。第一行輸入乙個整數 num 1 num 3999 輸出 num 對應的羅馬數字。樣例輸入123 樣例輸出cxxiii 總結 一道簡單...