
№ 11240 (Уровень: Средний) задача с сайта kompege.ru
**(М. Ишимов)** Исполнитель преобразует число на экране.
У исполнителя есть три команды, которые обозначены латинскими буквами:
A. Прибавить 2
B. Возвести в квадрат
C. Умножить на 3
Программа для исполнителя – это последовательность команд.
Сколько существует программ, для которых при исходном числе 2 результатом является число 64, если после выполнения команды B можно выполнить только команду A или C?

Комментарии к коду решения:
def F(a, b, flag):- Определение функцииFс параметрамиa- переменная старта и траектории,b- перменная стоп иflag- переменная для учета действий.if a >= b:- Проверка условия: еслиaбольше или равноb(то есть переменнаяaпревысила наше условиеb).return a == b- Возвращаем результат сравненияaиb(True, если равны, иначеFalse).if flag == "B":- Проверка условия: еслиflagравен"B"(если на предыдущем шаге была выполнена команда"B”.return F(a + 2, b, "A") + F(a * 3, b, "C")- Рекурсивный вызов функцииFс новыми параметрами исходя из условий.return F(a + 2, b, "A") + F(a**2, b, "B") + F(a * 3, b, "C")- Рекурсивный вызов функцииFс новыми параметрами.print(f(2, 64, 0))- Вывод результата вызова функцииFс начальными параметрами (2, 64, 0).
def F(a, b, flag):
if a >= b:
return a == b
if flag == "B":
return F(a + 2, b, "A") + F(a * 3, b, "C")
return F(a+2, b, "A") + F(a**2, b, "B") + F(a*3, b, "C")
print(F(2, 64, 0))
**Присоединяйтесь и готовьтесь с нами: t.me/informatika_kege_itpy**

Автор статьи: @ilandroxxy