Задание 23. Информатика. ЕГЭ. Поляков-7225

Просмотры: 378
Изменено: 24 ноября 2024

(М. Шагитов) У исполнителя Калькулятор имеются три команды, которые обозначены латинскими буквами:

А. Прибавить \(3\)
B. Умножить на \(5\)
C. Умножить на \(7\)

Программа для исполнителя — это последовательность команд, каждая из которых изменяет число. Найдите количество программ, для которых при исходном числе \(1\) результатом является число \(1000\), и при этом запрещено использование команды \(B\) сразу после команды \(A\).

Решение:

Python


def f(n, t, p):
    if n > t:
        return 0
    if n == t:
        return 1
    if p == 'A':
        return f(n + 3, t, 'A') + f(n * 7, t, 'C')
    else:
        return f(n + 3, t, 'A') + f(n * 5, t, 'B') + f(n * 7, t, 'C')
    
print(f(1, 1000, ''))

Ответ: \(366\)