Задание 5. Информатика. ЕГЭ. Поляков-7649
- Просмотры: 106
- Изменено: 21 февраля 2025
*(Н. Сафронов) На вход алгоритма подаётся натуральное четырехзначное число \(N,\) в десятичной записи которого есть как чётные, так и нечётные цифры (к другим числам алгоритм неприменим). Алгоритм строит по нему новое число \(R\) следующим образом:
- Из всех четных цифр числа \(N\) составляется наибольшее число.
- Из всех нечетных цифр числа \(N\) составляется наименьшее число.
- Вычисляется сумма двух чисел, построенных в результате шагов 1 и 2.
Укажите максимальное число \(R,\) которое может быть результатом работы данного алгоритма и в котором все цифры десятичной записи идут в порядке убывания.
Решение:
Python
def R(N):
x = N
odd = []
even = []
while N:
r = N % 10
if r % 2:
odd.append(r)
else:
even.append(r)
N //= 10
if len(odd) == 0 or len(even) == 0:
return -1
else:
even.sort(reverse=True)
odd.sort()
n1 = sum(a * 10**b for a, b in zip(even, range(len(even) - 1, -1, -1)))
n2 = sum(a * 10**b for a, b in zip(odd, range(len(odd) - 1, -1, -1)))
return n1 + n2
mx_R = 0
for n in range(1000, 10000):
t = R(n)
if t != -1:
s = str(t)
if all(x > y for x, y in zip(s, s[1:])):
mx_R = max(mx_R, t)
print(mx_R)
Ответ: \(875\)