*(Н. Сафронов) На вход алгоритма подаётся натуральное четырехзначное число \(N,\) в десятичной записи которого есть как чётные, так и нечётные цифры (к другим числам алгоритм неприменим). Алгоритм строит по нему новое число \(R\) следующим образом:
Сколько существует чисел \(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\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене