Все задачи №13
№13

три команды, не содержит числа

Исполнитель преобразует число на экране. У исполнителя три команды: A. Прибавить 1 B. Умножить на 2 C. Умножить на 3 Сколько существует программ, для которых при исходном числе 2 результатом является число 39 и при этом траектория вычислений не содержит числа 14? Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы ABC при исходном числе 7 траектория состоит из чисел 8, 16, 48.

Источник: ФИПИ (Открытый банк), № 29353

Ответвпиши то, что вывела программа
Показать разбор
  1. Команды идут вверх, поэтому бери шаблон с отсечкой x > end.
  2. Первой строкой проверь x == end и верни 1.
  3. Ниже добавь запрет: если x == 14, верни 0.
  4. Сложи ответы по трём командам: +1, ×2 и ×3.
  5. Выведи f(2, 39).
def f(x, end):
    if x == end: return 1
    if x == 14: return 0
    if x > end: return 0
    return f(x + 1, end) + f(x * 2, end) + f(x * 3, end)

print(f(2, 39))