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