Задание 5. Информатика. ЕГЭ. Поляков-7650
- Просмотры: 287
- Изменено: 21 февраля 2025
*(Н. Сафронов) На вход алгоритма подаётся натуральное четырехзначное число \(N,\) в десятичной записи которого есть как чётные, так и нечётные цифры (к другим числам алгоритм неприменим). Алгоритм строит по нему новое число \(R\) следующим образом:
- Если в числе \(N\) четных чисел больше, то вычисляется сумма всех четных цифр числа \(N,\) иначе вычисляется сумма всех нечетных цифр числа \(N.\)
- Если на предыдущем шаге получилось четное число, то к нему справа приписывается максимальная четная цифра числа \(N,\) иначе слева приписывается минимальная нечетная цифра числа \(N.\)
Сколько существует чисел \(N,\) для которых результат работы автомата \(R\) равен \(111?\)
Решение:
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:
if len(even) > len(odd):
x = sum(even)
else:
x = sum(odd)
if x % 2 == 0:
s = str(x) + str(max(even))
else:
s = str(min(odd)) + str(x)
return int(s)
N = 0
for n in range(1000, 10_000):
N += int(R(n) == 111)
print(N)
Ответ: \(228\)