Вхід:
Ціле число.
Вихід:
- Спочатку перетворіть ціле число в його еквівалентний римський число.
- Потім перетворіть кожну велику літеру цього римського числа в їх десятичне значення ASCII / UNICODE.
- І виведіть суму цих.
Приклад:
1991 -> MCMXCI -> 77+67+77+88+67+73 -> 449
^ input ^ output
Римські цифри: Ось, можливо, корисний перетворювач римських чисел .
Правила виклику:
- Застосовуються стандартні римські чисельні правила, тому немає альтернативних форм на зразок
IIII
абоVIIII
замістьIV
іIX
. * - Лінії Макрона над римськими цифрами минулої тисячі є
¯
(UNICODE № 175). Отже, один рядок вважається як,+175
а два як+350
. - Вам дозволяється використовувати будь-який тип вводу та виводу, якщо вони представляють цілі числа.
- Тестові випадки будуть в діапазоні
1 - 2,147,483,647
.
* Римські чисельні правила (цитата з Вікіпедії):
Числа утворюються комбінуванням символів та додаванням значень, тому
II
два (два) іXIII
тринадцять (десять і три). Оскільки кожна цифра має фіксоване значення, а не представляє кратні десять, сто тощо, відповідно до позиції, немає необхідності в "нумерації місце" нулів, як у числах, як 207 або 1066; ці числа записуються якCCVII
(дві сотні, п’ять і дві) іMLXVI
(тисяча, п'ятдесят, десять, п’ять і одна).Символи розміщуються зліва направо в порядку значення, починаючи з найбільшого. Однак у кількох конкретних випадках, щоб уникнути повторення чотирьох символів (наприклад,
IIII
абоXXXX
), віднімання часто застосовується таким чином:
I
ставиться передV
абоX
вказує один менше, тому чотири єIV
(один менше п'яти) і дев'ять -IX
(один менше десяти)X
ставиться передL
абоC
вказує на десять менше, тому сорок - цеXL
(десять менше п’ятдесяти), а дев'яносто - цеXC
(десять менше сотні)C
ставиться передD
абоM
вказує на сто менше, тому чотириста - цеCD
(сто менше п'ятисот), а дев'ятсот - цеCM
(сто менше тисячі)
Наприклад,MCMIV
це тисяча дев'ятсот чотири, 1904 (M
це тисяча,CM
є дев'ятсот іIV
чотири).Деякі приклади сучасного використання римських цифр включають:
1954 якMCMLIV
; 1990 якMCMXC
; 2014 рік якMMXIV
ДЖЕРЕЛО
Загальні правила:
- Це код-гольф , тому найкоротша відповідь у байтах виграє.
Не дозволяйте мовам коду-гольфу відштовхувати вас від публікації відповідей з мов, що не кодують гольф. Спробуйте придумати якомога коротшу відповідь на "будь-яку" мову програмування. - Для вашої відповіді застосовуються стандартні правила , тому вам дозволяється використовувати STDIN / STDOUT, функції / метод з відповідними параметрами, повноцінні програми. Твій дзвінок.
- Лазівки за замовчуванням заборонені.
- Якщо можливо, додайте посилання з тестом для вашого коду.
- Також, будь ласка, додайте пояснення, якщо це необхідно.
Тестові приклади:
100 -> 67
1 -> 73
4 -> 159
22 -> 322
5000 -> 261
2016 -> 401
1000000000 -> 427
1991 -> 449
9999 -> 800
1111111111 -> 2344
2147483647 -> 5362
9999
-> M(X)CMXCIX
-> 77+263+67+77+88+67+73+88
-> 800
і 2147483647
-> ((MMCXLV)MMCDLXXX)MMMDCXLVII
-> 427+427+417+438+426+436 + 252+252+242+243+251+263+263+263 + 77+77+77+68+67+88+76+86+73+73
-> 5362
. Тому я виправив друге, але це 9999
було правильно.
2222222222
не в заданому діапазоні. І я згоден з цим 5362
.