Исполнитель преобразует число на экране. У исполнителя есть две команды, которые обозначены латинскими буквами.
Первая команда уменьшает число на экране на \(2,\) вторая команда меняет разряды десятков и единиц в числе местами, причём она применяется только к числам, у которых цифра в разряде единиц меньше цифры в разряде десятков. Программа для исполнителя – это последовательность команд.
Сколько существует программ, для которых при исходном числе \(57\) результатом является число \(13?\)
Траектория вычислений программы – это последовательность результатов выполнения всех команд программы.
Например, для программы AAB при исходном числе \(24\) траектория состоит из чисел \(22, \, 20, \, 2.\)
Решение:
Python
def swap(n):
a, b = n // 10, n % 10
return b * 10 + a if a > b else n
def f(n, target):
if n <= 13:
return n == 13
return f(n - 2, target) + f(swap(n), target) if n % 10 < n // 10 else f(n - 2, target)
print(f(57, 13))
Ответ: \(6\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене