計蒜客 難題題庫 014 羅馬數字轉換成整數

2021-07-04 11:00:38 字數 1070 閱讀 3844

給定乙個羅馬數字s,( i<=s<=mmmcmxcix)(即1到3999),將羅馬數字轉換成整數。

如羅馬數字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、相同的數字連寫,所表示的數等於這些數字相加得到的數,如:ⅲ = 3;

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

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

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

樣例1輸入:

cxxiii

輸出:

123

#include#includeusing namespace std;

int main()

break;

case 'v':

res += 5;

break;

case 'x':

res += 10;

if(i + 1 < n && (s[i + 1] == 'l' || s[i + 1] == 'c'))

break;

case 'l':

res += 50;

break;

case 'c':

res += 100;

if(i + 1 < n && (s[i + 1] == 'd' || s[i + 1] == 'm'))

break;

case 'd':

res += 500;

break;

case 'm':

res += 1000;

break;

default:

break;}}

cout << res << endl;

}

計蒜客 難題題庫 217 階乘

n的階乘定義為n 1 2 3 n 如3 6 n 通常最後會有很多0,如5 120 最後有乙個0,現在統計n 去除末尾的0後,最後k位是多少 輸入格式 第一行包括兩個數n,k 輸出格式 如果n 不止k位,則輸出最後k位,如果不足k位,則將剩下的全部輸出 7!為5040,去除末尾的0為504,最後兩位為...

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

給定乙個整數 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...

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

給定乙個羅馬數字 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 ...