藍橋杯 羅馬數字的轉化

2021-08-15 01:33:21 字數 1972 閱讀 5905

古羅馬帝國開創了輝煌的人類文明,但他們的數字表示法的確有些繁瑣,尤其在表示大數的時候,現在看起來簡直不能忍受,所以在現代很少使用了。之所以這樣,不是因為發明表示法的人的智力的問題,而是因為乙個宗教的原因,當時的宗教禁止在數字中出現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。

如果相鄰級別的大單位在右,小單位在左,表示大單位中扣除小單位。比如:ix表示9  iv表示4  xl表示40 更多的示例參見下表,你找到規律了嗎?

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行,就是羅馬數字對應的十進位制資料。

例如,使用者輸入: 3

l***

xciii

dccii

則程式應該輸出: 80

93702

-----------------------

遇到 i  sum += 1

遇到 x  sum += 10

遇到 v  sum += 5

.if(包含 "ix") sum -= 2;  

if(包含 "iv") sum -= 2;

if(包含 "xc") sum -= 20;

...

羅馬數字,真心好複雜好煩的東西,好在這道題是給定羅馬數字求阿拉伯數字,按照題目提醒做即可。若是反過來就麻煩多了,各種規定.......

/*需要知道羅馬數字的表示規律,題目已經介紹的比較清楚,

然後就是把每個符號對應整數,根據規律進行求和

藍橋杯 羅馬數字

題目 古羅馬帝國開創了輝煌的人類文明,但他們的數字表示法的確有些繁瑣,尤其在示 大數的時候,現在看起來簡直不能忍受,所以在現代很少使用了。之所以這樣,不 是因為發明表示法的人的智力的問題,而是因為乙個宗教的原因,當時的宗教禁止 在數字 現 0 的概念!羅馬數字的表示主要依賴以下幾個基本符號 i 1 ...

藍橋杯 羅馬數字問題

羅馬數字 問題描述 古羅馬帝國開創了輝煌的人類文明,但他們的數字表示法的確有些繁瑣,尤其在表示大數的時候,現在看起來簡直不能忍受,所以在現代很少使用了。之所以這樣,不是因為發明表示法的人的智力的問題,而是因為乙個宗教的原因,當時的宗教禁止在數字中出現0的概念!羅馬數字的表示主要依賴以下幾個基本符號 ...

羅馬數字轉化

先看位置計數的定義 一種表達數字的系統,數字按照順序排列 每個數字有乙個位值,數字的值是每個數字和位值的乘積之和。電腦科學導論 p25 羅馬數字計數法 相同的數字連寫,所表示的數等於這些數字相加得到的數,如 3 小的數字在大的數字的右邊,所表示的數等於這些數字相加得到的數,如 8 12 小的數字 限...