Kurzusok
/
8th
8th
/
Feladatok
/
Római számok
Római számok

Római számok

Közepes

Bevezetés

Ma a világon a legtöbb ember arab számokat használ (0–9). Ha azonban kétezer évet visszautaznál az időben, azt tapasztalnád, hogy a legtöbb európai akkoriban római számokat használt.

Egy római szám leírásához a következő latin betűket használjuk, amelyek mindegyike egy-egy értéket jelöl:

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

A római szám ezeknek a betűknek a sorozata, az értéke pedig a betűk értékeinek összege. Például az XVIII értéke 18 (10 + 5 + 1 + 1 + 1 = 18).

Van azonban egy szabály, ami megnehezíti a dolgot: ugyanaz a betű nem szerepelhet egymás után háromnál többször. Ez azt jelenti, hogy az olyan számokat, mint a 4, nem írhatjuk le a kézenfekvőnek tűnő IIII-gyel. Helyette ezeknél a számoknál két betű közötti kivonást használunk. A 4-re tehát nem úgy gondolunk, mint 1 + 1 + 1 + 1, hanem úgy, mint 5 - 1. És ami a mai gondolkodásunknak kicsit zavaró lehet, a kisebb számot írjuk előre. Ez csak a következő esetekben érvényes: 4 (IV), 9 (IX), 40 (XL), 90 (XC), 400 (CD) és 900 (CM).

A római számoknál számít a sorrend! A betűket (és a fenti különleges összetételeket) balról jobbra haladva csökkenő érték szerint kell sorrendbe rakni.

Íme néhány példa:

 105 => CV
---- => --
 100 => C
+  5 =>  V
 106 => CVI
---- => --
 100 => C
+  5 =>  V
+  1 =>   I
 104 => CIV
---- => ---
 100 => C
+  4 =>  IV

És végül egy összetettebb példa:

 1996 => MCMXCVI
----- => -------
 1000 => M
+ 900 =>  CM
+  90 =>    XC
+   5 =>      V
+   1 =>       I

Utasítások

A feladatod, hogy egy számot arab számjegyekből római számjegyekké alakíts.

Ebben a feladatban csak a hagyományos római számjegyekkel foglalkozunk, amelyeknél a legnagyobb szám a MMMCMXCIX (vagyis 3999).

Note

Sok különböző módja van az arab és a római számjegyek közötti átváltásnak. Azt javasoljuk, hogy először egy naiv megközelítéssel ismerkedj meg a római számjegyek fogalmával, és csak utána keress hatékonyabb módszereket.

Feltétlenül nézd meg a végén található mélyelemzés videónkat, hogy megismerd a lehetséges megközelítéseket!

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
8th Exercism

Készen állsz elkezdeni a(z) Római számok feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) 8th nyelvet 70 feladat segítségével, valódi emberi mentorálással, mindez ingyen.

Mélyelemzés: Római számok!

Fedezz fel sokféle megoldást erre a trükkös feladatra, a rekurziótól a táblázatalapú kereséseken át egy vegyes számrendszert alkalmazó megoldásig, valamint a Common Lisp némi egyszerű csalásáig.