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
1 <= n < 2000000000
Exemple
super.in
super.out
super.in
super.out
18
XVIII
12345678
WUUSSSQRPDCLXXVIII
prof. Marinel Serban
Liceul de Informatica “Gr. C. Moisil” Iasi