Исполнитель преобразует число на экране.
У исполнителя есть две команды, которые обозначены латинскими буквами:
Первая из этих команд увеличивает число на экране на \(1.\) Вторая команда применяется только к числу, у которого цифра в разряде десятков по значению меньше цифры, стоящей в разряде единиц, и действует, заменяя число на экране числом, в котором цифры двух младших разрядов поменялись местами.
Программа для исполнителя – это последовательность команд.
Сколько существует программ, для которых при исходном числе \(100\) результатом является число \(150?\)
Траектория вычислений программы - это последовательность результатов выполнения всех команд программы.
Например, для программы АВА при исходном числе \(13\) траектория состоит из чисел \(14, \, 41, \,42.\)
Решение:
Python
def f(n, targ):
if n >= targ:
return n == targ
ns = list(str(n))
if ns[-2] < ns[-1]:
ns[-2], ns[-1] = ns[-1], ns[-2]
return f(n + 1, targ) + f(int(''.join(ns)), targ)
return f(n + 1, targ)
print(f(100, 150))
Ответ: \(35\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене