Задача #4295
Количество программ
Исполнитель преобразует число на экране. У исполнителя есть две команды, которые обозначены латинскими буквами:
A. Прибавь 1
B. Измени цифру
Первая из этих команд увеличивает число на экране на 1. Вторая команда применяется только к числу, у которого в записи присутствует хотя бы одна цифра 1, и действует, заменяя число на экране числом, в котором каждая цифра 1 заменена на цифру 3.
Программа для исполнителя - это последовательность команд.
Сколько существует программ, для которых при исходном числе 11 результатом является число 94?
Траектория вычислений программы - это последовательность результатов выполнения всех команд программы.
Например, для программы АВА при исходном числе 13 траектория состоит из чисел 14, 34, 35.
Решение
Ответ
Видео по задаче
def f(c,e):
p = str(c)
if c>e: return 0
if c==e: return 1
if '1' in p: return f(c+1,e)+f(int(p.replace('1','3')),e)
else: return f(c+1,e)
print(f(11,94))