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