OpenFIPI 2.0

23

5

E35422

Исполнитель преобразует число на экране.

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

A. Вычти 1

B. Найди целую часть от деления на 2

Программа для исполнителя – это последовательность команд.

Сколько существует программ, для которых при исходном числе 30 результатом является число 1 и при этом траектория вычислений содержит число 12?

Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы ABB при исходном числе 10 траектория состоит из чисел 9, 4, 2.

376

def f(a, b):
    if a < b:
        return 0
    if a == b:
        return 1
    return f(a - 1, b) + f(a // 2, b)

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

Просмотреть отправленные ответы E35422