Фон
Цей виклик надихнув цей веб-сайт, який опублікував таку схему:
Ця діаграма показує нам, що найдовший вираз римського числення під 250 - це 188, для вираження якого потрібно 9 цифр.
Виклик
Стандартні символи , використовувані для вираження найбільш римські цифри є наступні: { I
, V
, X
, L
, C
, D
, M
}, де числові значення характерів є M
= 1000, D
= 500, C
= 100, L
= 50, X
= 10, V
= 5, I
= 1.
У цьому виклику ваша мета полягає в тому, щоб, задавши ціле число n , обчислити кількість дійсних римських числових представлень, які можна скласти шляхом об'єднання n стандартних символів.
Тоді ваша програма повинна вивести результат цього обчислення!
Введення : додатне ціле число n .
Вихід : кількість дійсних римських числових виразів довжиною n .
Правила римських числових виразів
Римські цифри спочатку мали лише спарювання «добавки», тобто цифри завжди писалися у порядку зменшення, а сума значень усіх цифр - це значення числа.
Пізніше віднімання пари, використання розміщення меншої цифри перед більшою для того, щоб відняти меншу від більшої, стали звичною для скорочення виразів римських чисел. Субтрактівниє пари не можуть бути з'єднані, як показано в наступному недійсних вираз: IXL
.
Далі наведені сучасні правила додавання та віднімання.
- Лише один I, X і C можна використовувати як провідну цифру в частині віднімаючої пари.
- Мене можна розмістити лише перед V або X у віднімаючій парі.
- X можна ставити лише перед L або C у віднімаючій парі.
- C може бути розміщено лише перед D або M у віднімаючій парі.
- Крім віднімаючих пар, цифри повинні бути у порядку зменшення (тобто, якщо ви випустите провідну цифру кожної віднімаючої пари, то цифри будуть у порядку зменшення).
- M, C і X не можна дорівнювати або перевищувати меншими номіналами.
- D, L і V можуть з'являтися лише один раз.
- Тільки M може бути повторено 4 і більше разів.
Подальші примітки
Ми не будемо використовувати штрихові позначення; швидше, ми просто додамо більше M s, щоб виразити будь-яке число.
Це єдині правила, яких ми будемо дотримуватися для наших римських цифр. Це означає, що непарні вирази, такі як
IVI
, також будуть вважатися дійсними в нашій системі.Також пам’ятайте, що ми не рахуємо кількості чисел, що мають вирази довжини n , оскільки деякі числа мають декілька виразів. Натомість ми підраховуємо лише кількість дійсних виразів.
Випробування
1
→ 7
2
→ 31
3
→ 105
Я перевірив вищезазначене вручну, тому, будь ласка, переконайтеся, що двічі перевіряйте тестові справи, і додайте більше, якщо можете!
Критерії виграшу
Це завдання з кодовим гольфом , тож отримуйте задоволення! Я прийму лише рішення, які можуть працювати з принаймні введеннями від 1 до 9. Більше того - бонус!
Редагувати
Як вимагають коментатори, знайдіть нижче або за цим посиланням посилання 105 комбо, які я нарахував за n = 3
III IVI IXI IXV IXX VII, XII XIV XIX XVI XXI XXV XXX XLI XLV XLX XCI XCV XCX XCL XCC LII LIV LIX LVI LXI LXV LXX CII CIV CIX ХВН CXI CXV CXX CXL СХС CLI CLV CLX ТПП ККТ ЧКБ CCL КТС CDI CDV CDX КДЛ CDC CMI CMV CMX CML CMC CMD CMM CMI DII DIV DIX DVI DXI DXV DXX DXL DXC DLI DLV DLX DCI DCV DCX DCL DCC DCC MII MIV MIX MVI MXI MXV MXX MXL MXC MLI MLV MLX MCI MCV MCX MCL MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MCC MMX MML MMC MMD MMM MMM
Редагувати 2:
Використовуйте наступний код , який не використовується для гольфу , як люб’язно надано Джонатану Аллану, щоб перевірити результати.
Редагувати 3:
Прошу вибачення за всі помилки в цьому виклику. Я обов'язково наступного разу зроблю кращу роботу!