Один древнеримский торговец брал несколько раз ссуду в древнеримском банке. каждый раз банкир записывал размер выданной ссуды на листе пергамента, используя римские числа. но ввиду дороговизны пергамента запись производилась плотно и все числа оказались записанными подряд, без разделителей. когда торговец пришёл возвращать ссуду, оказалось, что невозможно установить разбиение записи на отдельные числа. например, если на пергаменте записана строка «xiiv», её можно разбить на римские», её можно разбить на римские числа разными способами, например, xi + iv», её можно разбить на римские = 11 + 4 = 15 или xii + v», её можно разбить на римские = 12 + 5 = 17, возможны и другие варианты разбиения. торговец хочет вернуть как можно меньше денег, поэтому он хочет разбить строку цифр на корректные римские числа так, чтобы сумма всех чисел была как можно меньше. вам необходимо решить для следующих пяти строк. vxivvix cxlvlxc xixcxixl xcmlxcd vlmixcd запишите в ответе пять чисел (арабскими цифрами в десятичной системе счисления), каждое число в отдельной строке – ответы для данных пяти строк точно в таком же порядке. например, для строки «xiiv», её можно разбить на римские» ответом будет число 15. если вы не можете дать ответ для какой-либо строки, напишите в ответе для этой строки число 0. правила записи римских чисел цифра тысячи сотни десятки единицы 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. число представляется в виде суммы тысяч, сотен, десятков и единиц. далее из следующей таблицы берётся по одному элементу, соответствующему тысячам, сотням, десяткам, единицам ровно в таком порядке. если число тысяч, сотен, десятков, единиц равно 0, то из соответствующего столбца ничего не берётся. например, число 1990 записывается, как 1000 + 900 + 90 = mcmxс.
265
335
Ответы на вопрос:
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.
Орёл - зрение волк - осязание летучая мышь - слух дельфин - слух крот - обоняние
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Kekit24.08.2022 07:56
-
zka20zka2003.05.2021 21:17
-
yan777215.08.2022 01:53
-
toseshevaanna01.05.2020 16:08
-
lvcenkoirina07.01.2021 22:05
-
БМадина326.10.2020 14:29
-
shvffvvfff26.03.2020 07:01
-
Aleksandra2006112.04.2022 17:48
-
vtkmlth10.09.2022 22:52
-
Ramazan140307.02.2020 13:12
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.