Задание 23. Информатика. 2022-20

Просмотры: 460
Изменено: 1 февраля 2025

Исполнитель Счётчик преобразует число на экране.
У исполнителя есть две команды, которым присвоены номера:

  1. Прибавить 1
  2. Умножить на 3

Первая из них увеличивает число на экране на 1, вторая умножает его на 3. Программа для исполнителя Счётчик — это последовательность команд. Сколько существует таких программ, для которых при исходном числе 1 результатом является число 40 и при этом траектория вычислений программы содержит число 12 и не содержит числа 35?
Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 4 траектория будет состоять из чисел 5, 15, 16.

Решение:

Python


def f(n, target):
    if n == target:
        return 1
    elif n == 35 or n > target:
        return 0
    else:
        return f(n+1, target) + f(n*3, target)

print(f(1, 12)*f(12, 40))

Ответ: 14