Исполнитель преобразует число на экране. У исполнителя есть две команды, которые обозначены латинскими буквами:
Первая из этих команд увеличивает число на экране на \(1.\) Вторая команда применяется только к числу, у которого в записи присутствует хотя бы одна цифра \(1,\) и действует, заменяя число на экране числом, в котором каждая цифра заменена на цифру \(З.\) Программа для исполнителя - это последовательность команд.
Сколько существует программ, для которых при исходном числе \(11\) результатом является число \(94?\)
Траектория вычислений программы - это последовательность результатов выполнения всех команд программы. Например, для программы АВА при исходном числе \(13\) траектория состоит из чисел \(14,\) \(34,\) \(35.\)
Решение:
Python
def f(n, targ):
if n >= targ:
return n == targ
ns = str(n)
if '1' in ns:
return f(n + 1, targ) + f(int(ns.replace('1', '3')), targ)
return f(n + 1, targ)
print(f(11, 94))
Ответ: \(832\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене