Это год MDLXVII в мире, в котором никогда не пала Римская империя, и никогда не происходил крах в темные века. Из-за длительного периода Pax Romana, экономическая стабильность империи позволила технологии развиваться быстрыми темпами.
Римляне начали увлекаться схемотехникой и изобрели оригинальный калькулятор, который не требует использования кнопки «равно». Они называют это "римско-польской нотацией"
Чтобы сделать расчет, они сначала вводят свои операнды, а затем операцию.
Например, 100 + 11 * 20 будет C XI XX * +
.
Дополнительно
Римляне обнаружили, что им часто нужно выполнять несколько вычислений одновременно, и предпочитают, чтобы метод возвращал каждое значение «в стеке» в некой структуре типа массива / списка / кортежа. (например X I + X I - CC II +
, вернется [11, 9, 202])
Задача состоит в том, чтобы разработать программу-калькулятор, способную выполнять эти вычисления.
Пояснение : требуется вычитание. Я не осознавал, что это не было признано в древнеримской империи. Задача была поэтому неоднозначной, и я прошу прощения.
Минимальные рекомендации
- Ваш вывод будет в арабских цифрах.
- Вам нужно только конвертировать из римских цифр до 5000.
- Вам нужно будет поддерживать операции +, -, /, * (сложение, вычитание, деление и умножение).
- Будет ли деление основано на числах с плавающей запятой или на целых числах, зависит от реализации. Либо работает для этого вызова.
- Ваш вывод должен поддерживать номера до 4 миллиардов.
- Самый короткий ответ в целом, И на каждом языке выигрывает. Это Code Golf Challenge, но я люблю разнообразие.
В случае ничьей такие факторы, как поддержка римских цифр выше 5000 или дополнительные операции, будут считаться наиболее ранними.