Исполнитель преобразует число на экране. У исполнителя есть две команды, которые обозначены латинскими буквами:
А. Прибавь 1
В. Измени цифру
Первая из этих команд увеличивает число на экране на 1. Вторая команда применяется только к числу, у которого в записи присутствует хотя бы одна цифра 1, и действует, заменяя число на экране числом, в котором каждая цифра 1 заменена на цифру 2. Программа для исполнителя — это последовательность команд. Сколько существует программ, для которых при исходном числе 11 результатом является число 92? Траектория вычислений программы — это последовательность результатов выполнения всех команд программы.
Решение:
def F(x, y):
if x > y:
return 0
if x == y:
return 1
if x < y:
s = str(x)
if '1' in s:
return F(x + 1, y) + F(int(s.replace('1', '2')), y)
else:
return F(x + 1, y)
print(F(11, 92))
Ответ: 1408
Ответ:
1408