古羅馬帝國開創了輝煌的人類文明,但他們的數字表示法的確有些繁瑣,尤其在表示大數的時候,現在看起來簡直不能忍受,所以在現代很少使用了。之所以這樣,不是因為發明表示法的人的智力的問題,而是因為乙個宗教的原因,當時的宗教禁止在數字中出現0的概念!
羅馬數字的表示主要依賴以下幾個基本符號:
i 1
v 5
x 10
l 50
c 100
d 500
m 1000
這裡,我們只介紹一下1000以內的數字的表示法。
單個符號重複多少次,就表示多少倍。最多重複3次。比如:ccc表示300 xx表示20,但150並不用lll表示,這個規則僅適用於i x c m。
i,1
ii,2
iii,3
iv,4
v,5vi,6
vii,7
viii,8
ix,9
x,10
xi,11
xii,12
xiii,13
xiv,14
xv,15
xvi,16
xvii,17
xviii,18
xix,19
xx,20
xxi,21
xxii,22
xxix,29
***,30
***iv,34
***v,35
***ix,39
xl,40
l,50
li,51
lv,55
lx,60
lxv,65
l***,80
xc,90
xciii,93
xcv,95
xcviii,98
xcix,99
c,100
cc,200
ccc,300
cd,400
d,500
dc,600
dcc,700
dccc,800
cm,900
cmxcix,999
本題目的要求是:請編寫程式,由使用者輸入若干個羅馬數字串,程式輸出對應的十進位制表示。
輸入格式是:第一行是整數n,表示接下來有n個羅馬數字(n<100)。以後每行乙個羅馬數字。羅馬數字大小不超過999。
要求程式輸出n行,就是羅馬數字對應的十進位制資料。
例如,使用者輸入:
3l***
xciii
dccii
則程式應該輸出:
8093
702注意:
請仔細除錯!您的程式只有能執行出正確結果的時候才有機會得分!
在評卷時使用的輸入資料與試卷中給出的例項資料可能是不同的。
#include
#include
#include
#include
using namespace std;
/*struct student
;int main()
,*p;
p=&stu;
couta;
i=a.length();
for(i;i>0;i--)
case 'v':
case 'x':
case 'l':
case 'c':
case 'd':
case 'm':}}
if((a.data()[i-2]=='i'&&a.data()[i-1]=='v')!=0)
else if((a.data()[i-2]=='i'&&a.data()[i-1]=='x')!=0)
}cout } 題目 古羅馬帝國開創了輝煌的人類文明,但他們的數字表示法的確有些繁瑣,尤其在示 大數的時候,現在看起來簡直不能忍受,所以在現代很少使用了。之所以這樣,不 是因為發明表示法的人的智力的問題,而是因為乙個宗教的原因,當時的宗教禁止 在數字 現 0 的概念!羅馬數字的表示主要依賴以下幾個基本符號 i 1 ... 羅馬數字 問題描述 古羅馬帝國開創了輝煌的人類文明,但他們的數字表示法的確有些繁瑣,尤其在表示大數的時候,現在看起來簡直不能忍受,所以在現代很少使用了。之所以這樣,不是因為發明表示法的人的智力的問題,而是因為乙個宗教的原因,當時的宗教禁止在數字中出現0的概念!羅馬數字的表示主要依賴以下幾個基本符號 ... 古羅馬帝國開創了輝煌的人類文明,但他們的數字表示法的確有些繁瑣,尤其在表示大數的時候,現在看起來簡直不能忍受,所以在現代很少使用了。之所以這樣,不是因為發明表示法的人的智力的問題,而是因為乙個宗教的原因,當時的宗教禁止在數字中出現0的概念!羅馬數字的表示主要依賴以下幾個基本符號 i 1 v 5 x ...藍橋杯 羅馬數字
藍橋杯 羅馬數字問題
藍橋杯 羅馬數字的轉化