super
Ati auzit legenda lui Midas
care transforma in aur tot ce atingea? Cum Midas nu avea ce face cu tot aurul,
el a inceput sa-l vanda, obtinand pe el sume uriase de bani. Din pacate, numerele
romane, folosite pe vremea lui exprimau dificil numere mari, de ordinul milioanelor.
De aceea, Midas a fost nevoit sa inventeze numere noi, pe care le-a numit numere
super-romane. Numerele super-romane verifica regulile obisnuite de formare a
numerelor romane.
Sa consideram simbolurile obisnuite romane si reprezentarea lor zecimala:
I = 1 V = 5 X = 10 L = 50 C = 100 D = 500 M = 1000
Simbolurile I, X, C, M pot fi scrise consecutiv in numar de maxim 3. Celelalte simboluri nu se pot repeta consecutiv. Simbolurile sunt scrise fara spatii intre ele, in ordinea descrescatoare a valorilor:
CCLXVIII= 100+100+50+10+5+1+1+1 = 268
Uneori insa, un simbol I, X, C sau M este plasat inaintea unuia dintre cele doua simboluri de valori imediat superioare (I inainte de V sau X; X inainte de L sau C, etc). In acest caz, valoarea simbolului mai mic este scazuta din valoarea simbolului pe care il preceda:
IV = 5-1 = 4
IX = 10-1 = 9
XL = 50-10 = 40
Numere compuse insa, ca XD, IC sau XM nu sunt corecte, deoarece simbolul din fata are valoare mult prea mica decat a celui care il urmeaza. Astfel:
- pentru XD (490 scris gresit) se foloseste reprezentarea CDXC
- pentru IC (99 scris gresit) se foloseste XCIX
- pentru XM (990 scris gresit) se foloseste CMXC
Din nefericire, numere mari, cum ar fi 10000 s-ar reprezenta MMMMMMMMMM, deci foarte dificil. De aceea tabela numerelor romane se extinde:
I = 1 L = 50
M = 1000 R = 50000 U = 1000000 N = 50000000
V = 5 C = 100 P = 5000 S = 100000 B = 5000000 Y = 100000000
X = 10 D = 500 Q = 10000 T = 500000 W = 10000000 Z = 500000000
In acest fel, pastrand regulile obisnuite de scriere, se pot reprezenta si numere de ordinul sutelor de milioane.
Cerinta
Scrieti un program care citeste un numar natural dintr-un fisier si il converteste
in numarul echivalent in forma super-romana.
Date de intrare
Pe prima linie a fisierului de intrare super.in se gaseste numarul natural n.
Date de iesire
Pe prima linie a fisierului de iesire super.out se gaseste numarul n in forma super-romana.
Restrictii
Exemple
super.in |
super.out | super.in |
super.out |
18 |
XVIII | 12345678 |
WUUSSSQRPDCLXXVIII |
Timp maxim de executie/test: 0.1 secunde
prof. Marinel Serban
Liceul de Informatica “Gr. C. Moisil” Iasi
e-mail: marinel_serban@yahoo.com