В двух глобальных переменных one, two находятся два натуральных числа: первое слагаемое и второе слагаемое. Напишите функцию roman(), которая считает их сумму и записывает ее в глобальную переменную three, переводит каждое слагаемое и сумму в римскую запись и печатает их, как показано в примере.
Формат ввода
one = 5
two = 4
roman()
Формат вывода
V + IV = IX
вот мой код, но вылазит ошибка - Глобальная переменная three не равна сумме one и two
Как исправить?
CONV_TABLE = ((1000, 'M'), (900, 'CM'), (500, 'D'), (400, 'CD'),
(100, 'C'), (90, 'XC'), (50, 'L'), (40, 'XL'),
(10, 'X'), (9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I'))
def arab_to_roman(number):
if number <= 0:
return ''
ret = ''
for arab, roman in CONV_TABLE:
while number >= arab:
ret += roman
number -= arab
return ret
def roman_to_arab(txt):
txt = txt.upper()
ret = 0
for arab, roman in CONV_TABLE:
while txt.startswith(roman):
ret += arab
txt = txt[len(roman):]
return ret
def roman():
global one
global two
global three
three = '{} + {} = {}'.format(arab_to_roman(one), arab_to_roman(two), arab_to_roman(one + two))
print(three)
V=(a*b)*i
а и b - это параметры разрешения изображения (сколько точек в изображении) в нашем случае а=300 b=200.
i - количество бит которые требуются для кодирования цвета каждой точки.
4 цвета кодируются 2-мя битами.
Следовательно:
200*300*2=120000 бит занимает 4-х цветное изображение в видео памяти.
16 цветов кодируются 4-мя битами.
Находим количество точек(16 цветов) которое можно сохранить в видеопамяти.
вводи Х:
Х - (a*b)
120000=x*4
x=30000
ответ: изображение размером в 30000 точек.