В двух глобальных переменных 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)
Вот пример программы на паскале ABC:
var a:array [1..1000000] of integer;
b:array [1..10] of longint;
c:integer;
i,max,n:longint;
begin
write('Введите число элементов массива: ');
readln(n);
max:=0;
for i:=1 to 10 do
b[i]:=0;
for i:=1 to n do begin
a[i]:=random(10)+1;
write(a[i],' ');
b[a[i]]:=b[a[i]]+1
end;
for i:=1 to 10 do if b[i]>max then
begin
c:=i;
max:=b[i]
end;
writeln;
writeln('Чаще всего в массиве встречается число ',c)
end.
2^3 < 10, 3^3 > 20
2) Если x(x+1) > 10, то (x+1)(x+2) < 10. Это верно при x = -4
(-4)(-3) = 12 > 10; (-3)(-2) = 6 < 10
Но при x = 2 будет ложная посылка (2*3 > 10 - это ложно),
из которой следует ложный вывод 3*4 < 10.
Поэтому импликация верна. ответ x = 2
3) Если x(x+1)(x+2) > 25, то x < x-1
Это сложнее. x < x-1 - ложно при любом х.
Импликация будет истинной, только если посылка ложная.
x(x+1)(x+2) > 25 - должно быть ложно. Это при x = 2.
x(x+1)(x+2) = 2*3*4 = 24.