22:59 22 Тип 22 № 14706
записан
Ниже на пяти языках программирования
алгоритм. Получив на вход число х, этот алгоритм печатает
два числа: а и b. Укажите наибольшее из таких чисел x, при
вводе которого алгоритм печатает сначала 2, а потом 4.
DIM X, A, B AS INTEGER
INPUT X
А = 0: В = 0
WHILE X > 0
Бейсик
IF X MOD 2 = 0 THEN
A = A + 1
ELSE
WEND
PRINT A
PRINT B
B = B + X MOD 10
END IF
Укажите наибольшее из таких чисел х, при вводе которого алгоритм печатает сначала 2,а потом 4. Напишите , саму программу на питоне и ответ.
x = int(input())
a=0; b=0
while x > 0:
if x%2 == 0:
a += 1
else:
b += x % 10
x = x//10
print(a, b)
ответ: 8831
Код на языке программирования Python
otv = []
for t in range(1, 100001):
x = t
a = 0; b = 0
while x > 0:
if x % 2 == 0:
a += 1
else:
b += x % 10
x = x // 10
if a == 2 and b == 4:
otv.append(t)
print(max(otv))
Объяснение:
Список otv будет содержать все значения t, подходящие по условию.
Переменная x меняется в процессе работы кода, а нам для ответа нужно изначальное значение x, поэтому изначальное значение сохраняем в переменной t.
В конце цикла for производим проверку, если a == 2 и b == 4, то добавляем к списку otv переменную t (т.к. по условию сначала выводится переменная a, потом b).
В конце кода выводим максимальное значение списка otv.