Komplex feladatok¶
Római szám konverter¶
Készíts egy programot, amely egy adott arab számot (1-től 2000-ig) római számmá alakít át! A programnak ellenőriznie kell, hogy a bevitt érték a megadott tartományban van-e, és ha nem, akkor hibaüzenetet kell kiírnia.
A római számok a következő karakterekből állnak: \(I, V, X, L, C, D, M\). A római számokban nincsenek negatív értékek vagy nulla, tehát csak pozitív számokat konvertálunk.
Az egyes karakterek értékei:
| Karakter | Érték |
|---|---|
| I | 1 |
| V | 5 |
| X | 10 |
| L | 50 |
| C | 100 |
| D | 500 |
| M | 1000 |
Bizonyos esetekben kisebb értéket kell a nagyobb elé írni, hogy vonjon abból, például:
- \(IV = 4\)
- \(IX = 9\)
- \(XL = 40\)
- \(XC = 90\)
- \(CD = 400\)
- \(CM = 900\)
Példa
| Arab szám | Római szám |
|---|---|
| 3 | III |
| 9 | IX |
| 58 | LVIII |
| 1994 | MCMXCIV |
| 14 | XIV |
| 44 | XLIV |
| 99 | XCIX |
| 2023 | MMXXIII |
| 3999 | MMMCMXCIX |
Szám betűvel történő kiírása¶
Készíts egy programot, amely egy adott számot betűvel ír ki szó alakban!
A programnak ellenőriznie kell, hogy a bevitt érték a megadott tartományban van-e, és ha nem, akkor hibaüzenetet kell kiírnia.
A programnak a következő tartományban kell működnie: \(0 \leq n \leq 9999\).
Példa
| Szám | Szó alakban |
|---|---|
| 0 | nulla |
| 1 | egy |
| 10 | tíz |
| 11 | tizenegy |
| 20 | húsz |
| 21 | huszonegy |
| 100 | száz |
| 101 | százegy |
| 110 | száztíz |
| 111 | száz tizenegy |
| 1000 | ezer |
| 1001 | ezer egy |
| 1010 | ezer tíz |
| 1011 | ezer tizenegy |
| 1100 | ezer száz |
| 1101 | ezer százegy |
| 1110 | ezer száztíz |
| 1111 | ezer száz tizenegy |
| 9999 | kilencezer kilencszázkilencvenkilenc |