№ 11261 (Уровень: Базовый)
Исполнитель преобразует число на экране.
У исполнителя есть три команды, которые обозначены латинскими буквами: A. Прибавить 2 B. Умножить на 3 C. Умножить на 2
Программа для исполнителя – это последовательность команд.
Сколько существует программ, для которых при исходном числе 13 результатом является число 45, и при этом траектория вычислений не содержит число 16?
Комментарии к коду программы:
def F(a, b):
- Определение функции с именем F
, принимающей два аргумента a
и b
.if a > b or a == 16:
- Если a
больше b
или a
равно 16, выполняется следующая инструкция.return 0
- Возвращается значение 0.if a == b:
- Если a
равно b
, выполняется следующая инструкция.return 1
- Возвращается значение 1.else:
- Если ни одно из предыдущих условий не выполняется, выполняется следующая инструкция.return F(a + 2, b) + F(a * 3, b) + F(a * 2, b)
- Возвращается сумма результатов рекурсивных вызовов функции F
с различными аргументами.print(F(13, 45))
- Выводится результат вызова функции F
с аргументами 13 и 45.