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