Реализовать функцию, которая преобразует римские числа в арабские и наоборот.

Практические упражнения Python 

Выберете уровень:
►► ►► ►►►
Начальный  Средний  Высокий 

Функция для преобразования римских чисел в арабские и наоборот

Эта функция позволяет конвертировать римские числа в арабские и арабские числа в римские. Реализация поддерживает оба направления конвертации.

def roman_to_int(s):
    roman_numerals = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}
    integer = 0
    for i in range(len(s)):
        if i > 0 and roman_numerals[s[i]] > roman_numerals[s[i - 1]]:
            integer += roman_numerals[s[i]] - 2 * roman_numerals[s[i - 1]]
        else:
            integer += roman_numerals[s[i]]
    return integer

def int_to_roman(num):
    val = [
        1000, 900, 500, 400,
        100, 90, 50, 40,
        10, 9, 5, 4, 1
    ]
    syms = [
        "M", "CM", "D", "CD",
        "C", "XC", "L", "XL",
        "X", "IX", "V", "IV",
        "I"
    ]
    roman_num = ''
    i = 0
    while num > 0:
        for _ in range(num // val[i]):
            roman_num += syms[i]
            num -= val[i]
        i += 1
    return roman_num

# Примеры использования:
print(roman_to_int('IX')) # Вывод: 9
print(int_to_roman(9)) # Вывод: IX

В данном примере функции roman_to_int() и int_to_roman() позволяют преобразовывать римские числа в арабские и арабские числа в римские соответственно. Они используют таблицы соответствия между римскими и арабскими числами для выполнения конвертации.

Категория: Практические упражнения Python | Добавил: Admin (28.04.2024)
Просмотров: 24 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: