Треки
/
Pharo
Pharo
/
Вправи
/
Римські цифри
Римські цифри

Римські цифри

Легка

Вступ

Сьогодні більшість людей у світі користується арабськими цифрами (0–9). Але якби ми перенеслися на дві тисячі років назад, то побачили б, що більшість європейців користувалася натомість римськими цифрами.

Щоб записати римську цифру, ми використовуємо такі латинські літери, кожна з яких має своє значення:

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

Римська цифра - це послідовність таких літер, а її значення - сума значень цих літер. Наприклад, XVIII має значення 18 (10 + 5 + 1 + 1 + 1 = 18).

Але є одне правило, яке все ускладнює: ту саму літеру не можна використовувати більше ніж тричі підряд. Це означає, що ми не можемо записати такі числа, як 4, здавалося б природним IIII. Замість цього для таких чисел ми використовуємо метод віднімання між двома літерами. Тож ми уявляємо 4 не як 1 + 1 + 1 + 1, а натомість як 5 - 1. І, що трохи збиває з пантелику наше сучасне мислення, спершу ми пишемо менше число. Це стосується лише таких випадків: 4 (IV), 9 (IX), 40 (XL), 90 (XC), 400 (CD) і 900 (CM).

У римських цифрах порядок має значення! Літери (і наведені вище особливі сполуки) потрібно впорядковувати за спаданням значення зліва направо.

Ось кілька прикладів:

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

А ось складніший приклад наостанок:

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

Вказівки

Завдання - перетворити число з арабських цифр на римські.

У цій вправі йдеться лише про традиційні римські цифри, у яких найбільше число - MMMCMXCIX (або 3 999).

Note

Існує багато різних способів перетворювати арабські цифри на римські й навпаки. Радимо спершу застосувати найпростіший підхід, щоб ознайомитися з поняттям римських цифр, а вже потім шукати ефективніші методи.

Не забудьмо подивитися наше відео Deep Dive наприкінці, щоб дослідити різні підходи, які можна застосувати!

Примітка

У цій вправі використано прийоми з кількох інших вправ, але вона також потребує циклів з умовами.


Джерело

The Roman Numeral KataПосилання відкривається в новому вікні або вкладці
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Pharo Exercism

Час розпочати Римські цифри?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Pharo, а також 50 вправ та справжнє наставництво від людей, і все це безкоштовно.

Глибоке занурення у Римські цифри!

Розгляньте різноманітні розвʼязки цієї непростої вправи: від рекурсії до пошуку за таблицями, одне рішення, що використовує числа зі змішаною основою, та трохи простенького шахрайства з боку Common Lisp.