羅馬數字轉換成整數 字串處理

2021-08-19 13:27:59 字數 707 閱讀 1202

題目鏈結

給定乙個羅馬數字 s,將羅馬數字轉換成整數。

如羅馬數字i,ii,iii,iv,v分別代表數字 1,2,3,4,5。

首先要來了解一下羅馬數字表示法,基本字元有 7 個:i、v、x、l、c、d、m,分別表示 1、5、10、50、100、500、1000。

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

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

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

3、小的數字,(限於ⅰ、x和c)在大的數字的左邊,所表示的數等於大數減小數得到的數,如:iv = 4;ix = 9;

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

輸入格式

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

輸出格式

輸出對應的整數 s。

樣例輸入

cxxiii

樣例輸出

#include

using namespace std;

intmain()

else

val +

= mp[str[i]];

}printf

("%d\n"

,val)

;return0;

}

羅馬數字轉換成整數

時間限制 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 總結 一道簡單...