OpenFIPI 2.0

23

5

20B163

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

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

A. Вычти 1

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

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

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

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

288

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, 8), f(8, 1))

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