Задание 23. Информатика Досрочный экзамен 2022

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

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

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

Первая из них увеличивает число на экране на 2, вторая умножает его на 2. Программа для исполнителя — это последовательность команд. Сколько существует таких программ, которые преобразуют исходное число 1 в число 52 и при этом траектория вычислений программы содержит число 16?

Решение:

Python


def F(n, target):
    if n > target:
        return 0
    elif n == target:
        return 1
    else:
        return F(n+2, target) + F(2*n, target)

print(F(1, 16) * F(16, 52))

Ответ: 105