UniLecs #Task. Convert integer numbers to roman

Albert Davletov
UniLecs
Published in
2 min readMar 24, 2021

Разбор

Для начала давайте выпишем всевозможные римские цифры, ктр мы будем использовать:

  • 7 однобуквенных символов, каждый со своим значением;
  • правила вычитания дают дополнительные 6 символов.

I — 1, IV — 4, V — 5, IX — 9, X — 10, XL — 40, L — 50, XC — 90, C — 100, CD — 400, D — 500, CM — 900, M — 1000

Получаем, что представить целое число в виде римской цифры, необходимо найти последовательность из 13 римских символов, где их соот.значения складываются в целое число. Эта последовательность должна быть в порядке от наибольшего к наименьшему.

Схема алгоритма

Итак, чтобы представить данное целое число, мы ищем самый большой символ, который в него помещается. Мы вычитаем это, а затем ищем самый большой символ, который умещается в остатке, и так до тех пор, пока остаток не станет 0. Каждый из извлеченных символов добавляется к выходной строке римских цифр.

Реализация

C#

gist.github.com

Play-test

dotnetfiddle.net

--

--