In het oude Rome gebruikte men voor het weergeven van natuurlijke getallen een talstelsel gebaseerd op Romeinse cijfers. Dit talstelsel was geen positiestelsel, maar een additief stelsel waarin de waarde van het voorgestelde getal bepaald wordt door het totaal van de samenstellende symbolen. De getallen één tot en met tien worden met Romeinse cijfers geschreven als: I, II, III, IV, V, VI, VII, VIII, IX en X. Negatieve getallen en het getal nul konden niet voorgesteld worden in Romeinse cijfers. Het Romeins talstelsel raakt sinds de veertiende eeuw grotendeels in onbruik ten voordele van het decimaal talstelsel gebaseerd op Arabische cijfers. In sommige toepassingen zijn Romeinse cijfers echter nog steeds in gebruik, bijvoorbeeld bij de nummering van vorsten met dezelfde naam (bijv. Lodewijk XIV), bij de nummering van jaarlijkse events en bij de nummering van eeuwen in sommige landen (bijv. XIXe siècle).

In het talstelsel met Romeinse cijfers worden getallen genoteerd met symbolen, de eigenlijke cijfers, waarvan elk een bepaalde waarde heeft die onafhankelijk is van de positie die het cijfer in het getal inneemt. De Romeinse cijfers zijn:

symbool waarde
I 1
V 5
X 10
L 50
C 100
D 500
M 1000

De volgorde van de Romeinse cijfers in een getal is niet willekeurig. De waarden van de losse cijfers worden bij elkaar opgeteld, behalve als een lager cijfer vóór een hoger cijfer staat: in dat geval wordt het lagere cijfer er van afgetrokken. De regels voor het schrijven van getallen met Romeinse cijfers lijken in de Oudheid zeer los te zijn geweest. Zo gebruikte de BBC voor de aftiteling in het jaar 1999 het typografisch elegante jaartal MIM in plaats van MCMXCIX.

Invoer

De decimale voorstelling van een getal $$n \in \mathbb{N}$$, dus aan de hand van Arabische cijfers.

Uitvoer

Het getal $$n$$ voorgesteld aan de hand van Romeinse cijfers (enkel hoofdletters). De omzetting van Arabische naar Romeinse cijfers kan gebeuren door onderstaande tabel van links naar rechts te doorlopen. Zolang de waarde van $$n$$ groter of gelijk is aan de getalwaarde uit de tabel, voeg je de combinatie van Romeinse cijfers op de corresponderende positie achteraan toe aan het Romeins getal. De waarde van $$n$$ wordt daarna verlaagd met de getalwaarde. Van zodra $$n$$ kleiner is dan de getalwaarde uit de tabel, spring je één positie naar rechts in de tabel.

M CM D CD C XC L XL X IX V IV I
1000 900 500 400 100 90 50 40 10 9 5 4 1

Op die manier kan de decimale voorstelling van het getal op een unieke manier omgezet worden naar een voorstelling die gebruik maakt van Romeinse cijfers.

Voorbeeld

Invoer:

1999

Uitvoer:

MCMXCIX