Один древнеримский торговец брал несколько раз ссуду в древнеримском банке.Каждый раз

Один древнеримский купец брал несколько раз ссуду в древнеримском банке.
Каждый раз банкир записывал размер выданной ссуды на листе пергамента, используя
римские числа. Но ввиду накладности пергамента запись выполнялась плотно и все числа
оказались записанными подряд, без разделителей. Когда торговец пришёл возвращать ссуду,
оказалось, что невозможно установить разбиение записи на отдельные числа.
К примеру, если на пергаменте записана строчка XIIV, её можно разбить на римские, её можно разбить на римские
числа различными методами, к примеру, XI + IV, её можно разбить на римские = 11 + 4 = 15 либо XII + V, её можно разбить на римские = 12 + 5 = 17,
вероятны и иные варианты разбиения.
Купец желает возвращать как можно меньше денег, потому он желает разбить строчку цифр
на корректные римские числа так, чтобы сумма всех чисел была как можно меньше.
Для вас необходимо решить задачку для последующих пяти строк.
VXIVVIX
CXLVLXC
XIXCXIXL
XCMLXCD
VLMIXCD
Запишите в ответе пять чисел (арабскими цифрами в десятичной системе счисления),
каждое число в отдельной строке ответы для данных 5 строк точно в таком же порядке.
К примеру, для строчки XIIV, её можно разбить на римские ответом будет число 15. Если вы не сможете дать ответ для
какой-либо строки, напишите в ответе для этой строчки число 0.
Управляла записи римских чисел
Цифра Тыщи Сотки 10-ки Единицы
1 M C X I
2 MM CC XX II
3 MMM CCC XXX III
4 CD XL IV
5 D L V
6 DC LX VI
7 DCC LXX VII
8 DCCC LXXX VIII
9 CM XC IX
Римскими цифрами можно записать целые числа от 1 до 3999. Число представляется
в виде суммы тыщ, сотен, 10-ов и единиц. Дальше из последующей таблицы берётся по
одному элементу, подходящему тысячам, соткам, десяткам, единицам ровно в таком
порядке.
Если число тыщ, сотен, 10-ов, единиц равно 0, то из соответствующего столбца
ничего не берётся. К примеру, число 1990 записывается, как 1000 + 900 + 90 = MCMXС.

Задать свой вопрос
2 ответа

L, ls, res = ('I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000,

        ['CD', 'XL', 'IV', 'CM', 'XC', 'IX'], 0)

L -- словарь значений римских цифр

ls -- Все сочетания "неполных чисел"



a = input()


for i in ls:

Умножаем их количество на цену в L


res += a.count(i) * (-1 * L[i[0]] + L[i[1]])


a = a.replace(i, '') Убираем из строчки, досчитывая остальные числа


Подсчитываем оставшиеся  

for i in a:


res += L[i]


print(res)


Пример кода на Python 3.6.6.



аххаххахах  кто то олимпиаду пишет))))))))))))))))))))))))))))))))


, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы
Анна хорошо учится у неё много подруг свободное от учёбы время

Обществознание.

10) Килограмм конфет дороже килограмма печенья на 52 р. За 8

Математика.

Во сколько раз число атомов кислорода в земной коре больше числа

Химия.

Составить монолог от имени дневника двоечника 7-10 предложений

Русский язык.

Рассматривая литературный язык как сложное взаимодействие книжного языка и разговорного,В.И.Чернышёв горячо

Разные вопросы.

Арабы входят в __________________ групп народов. Местом расселения арабов с незапамятных

Разные вопросы.

Грузовой автомобиль марки краз за одну поездку может доставить 7.500 кирпичей

Математика.

Определить предложения какие они по цели высказывания и по интонации

Русский язык.

"Три толстяка" Называли эту площадь Площадью Звезды последующей причине.

Русский язык.

на одной грядке коротышки посадили 3 ряда морковок по 8 штук

Разные вопросы.

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт