- ← Back
- Алгоритм шифрування Караки
- Стипендія
- Любить, не любить
- Гіпотеза Коллатца
- Римські числа
- Паліндром
- Додатково:Запити
- Scoreboard
Римські числа
Limits: 2 sec., 256 MiB
Римська система числення складається з наступних символів:
| Символ | Значення |
|---|---|
| I | 1 |
| V | 5 |
| X | 10 |
| L | 50 |
| C | 100 |
| D | 500 |
| M | 1000 |
Числа формуються шляхом комбінування цих символів. Наприклад, число 12 записується як XII (X + I + I = 10 + 1 + 1).
Завдання
Напишіть програму, яка дозволяє користувачам конвертувати ціле число в римське число.
Правила римських чисел
Нуль не представлений у римській системі.
Символ може повторюватися не більше трьох разів поспіль.
Римські цифри додаються до значення, якщо розташовані після більшого числа.
Римські цифри віднімаються, якщо розташовані перед більшим числом.
Лише I, X та C можуть використовуватися у віднімальних комбінаціях:
I перед V (5) або X (10) → IV (4), IX (9)
X перед L (50) або C (100) → XL (40), XC (90)
C перед D (500) або M (1000) → CD (400), CM (900)
Числа утворюються шляхом комбінування цих символів. Наприклад, число 12 можна записати як XII, оскільки X + I + I = 10 + 1 + 1.
Додаткові правила
Нуль не має позначення.
Символ можна повторювати не більше трьох разів поспіль.
Римські цифри повторюються для збільшення значення: III відповідає 1 + 1 + 1 = 3. Однак лише степені числа 10 можуть повторюватися таким чином. Наприклад, запис VV є неправильним, оскільки 5 + 5 має бути записано як X.
Якщо римська цифра стоїть після більшої цифри, їх значення додаються. Якщо римська цифра стоїть перед більшою цифрою, їх значення віднімаються.
Тільки I, X і C можуть використовуватися для запису віднімання за такими правилами:
I може стояти перед V (5) та X (10), утворюючи IV (4) та IX (9) відповідно.
X може стояти перед L (50) та C (100), утворюючи XL (40) та XC (90) відповідно.
C може стояти перед D (500) та M (1000), утворюючи CD (400) та CM (900) відповідно.
Input
Ціле число х для конвертації
Output
В єдиному рядку римське число
Samples
| Input (stdin) | Output (stdout) |
|---|---|
| 10 | X |
| Input (stdin) | Output (stdout) |
|---|---|
| 22 | XXII |
| Input (stdin) | Output (stdout) |
|---|---|
| 76 | LXXVI |
| Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
|---|