Untitled

№ 11261 (Уровень: Базовый)

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

У исполнителя есть три команды, которые обозначены латинскими буквами: A. Прибавить 2 B. Умножить на 3 C. Умножить на 2

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

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

Untitled

Комментарии к коду программы:

  1. def F(a, b): - Определение функции с именем F, принимающей два аргумента a и b.
  2. if a > b or a == 16: - Если a больше b или a равно 16, выполняется следующая инструкция.
  3. return 0 - Возвращается значение 0.
  4. if a == b: - Если a равно b, выполняется следующая инструкция.
  5. return 1 - Возвращается значение 1.
  6. else: - Если ни одно из предыдущих условий не выполняется, выполняется следующая инструкция.
  7. return F(a + 2, b) + F(a * 3, b) + F(a * 2, b) - Возвращается сумма результатов рекурсивных вызовов функции F с различными аргументами.
  8. print(F(13, 45)) - Выводится результат вызова функции F с аргументами 13 и 45.