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

Просмотры: 74
Изменено: 22 ноября 2024

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

  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