Исполнитель преобразует число на экране.
У исполнителя есть две команды, которые обозначены номерами:
-
Прибавь 1
-
Помений местами
Первая из этих команд увеличивает число на экране на 1. Вторая команда может применяться только к числу, у которого цифра разряда десятков по значению меньше цифры, стоящей в разряде единиц, и действует, заменяя число на экране числом, в котором цифры двух младших разрядов поменялись местами.
Программа для исполнителя — это последовательность команд.
Сколько существует программ, для которых при исходном числе 101 результатом является число 154?
Решение:
Решение на Python:
def f(x, y):
if x > y:
return 0
if x == y:
return 1
count = f(x+1, y)
if (x // 10) % 10 < x % 10:
swap = (x // 100)*100+(x % 10)*10+((x // 10) % 10)
count += f(swap, y)
return count
print(f(101, 154))
Ответ: 89
Ответ:
89