EGEsoll - сборник решений задач из ЕГЭ

Задача 7

Профиматика

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

A. Прибавить 1

B. Прибавить 2

С. Прибавить 4

D. Прибавить 8

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

Сколько существует программ, для которых при исходном числе 16 результатом является число 48, если никакую из команд нельзя повторять дважды подряд?

Добавлено: 27.04.26 15:59

Перейти к решению

Решение

Решение на Python:

def f(start, end, k=0):
    if start == end: return 1
    if start > end: return 0
    if k == 1:
        return f(start + 2, end, 2) + f(start + 4, end, 4) + f(start + 8, end, 8)
    if k == 2:
        return f(start + 1, end, 1) + f(start + 4, end, 4) + f(start + 8, end, 8)
    if k == 4:
        return f(start + 1, end, 1) + f(start + 2, end, 2) + f(start + 8, end, 8)
    if k == 8:
        return f(start + 1, end, 1) + f(start + 2, end, 2) + f(start + 4, end, 4)
    else:
        return f(start + 1, end, 1) + f(start + 2, end, 2) + f(start + 4, end, 4) + f(start + 8, end, 8)


print(f(16, 48))

Ответ: 41993

Автор - IdealniyAriets

Объяснение

None

Назад