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

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

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

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

Первая из них увеличивает число на экране на 5, вторая увеличивает его на 4, третья умножает его на 3. Программа для Вычислителя — это последовательность команд. Сколько существует таких программ, которые преобразуют исходное число 2 в число 30 и при этом траектория вычислений программы содержит число 6?
Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 132 при исходном числе 1 траектория будет состоять из чисел 6, 18, 22.

Решение:

Python


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

print(f(2, 6)*f(6, 30))

Ответ: 16