profile
Размещено 6 лет назад по предмету Информатика от shamilmurt007

Один древнеримский торговец брал несколько раз ссуду в древнеримском банке.
Каждый раз банкир записывал размер выданной ссуды на листе пергамента, используя
римские числа. Но ввиду дороговизны пергамента запись производилась плотно и все числа
оказались записанными подряд, без разделителей. Когда торговец пришёл возвращать ссуду,
оказалось, что невозможно установить разбиение записи на отдельные числа.
Например, если на пергаменте записана строка «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С.

  1. Ответ на вопрос
    Ответ на вопрос дан kadyntsevivan

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


  2. Ответ на вопрос
    Ответ на вопрос дан gnilratskin

    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.



Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.