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

Просмотры: 97
Изменено: 23 ноября 2024

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

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

Решение:

Python


def f(n, target):
    if n == target:
        return 1
    if n > target:
        return 0
    return f(n+2, target) + f(n*2, target) + f(n*3, target)

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

Ответ: \(30\)