Исполнитель преобразует число на экране. У него есть три команды, которым присвоены номера:
1. Прибавить 1
2. Прибавить 4
3. Умножить на 2
Программа для исполнителя – это последовательность команд. Сколько существует программ, которые состоят из 7 команд и при исходном числе 3 результатом является 27?
Программа:
def f(a, c): #В данной функции у нас будет два параметра: а - изменяемое число, с - количество команд.
#При каждом изменении числа а мы будем увеличивать c
if c == 7: #Если количество команд равняется 7,то мы возвращаем 1 или 0 в зависимости от того,равна ли а 27 или нет
return a == 27
return f(a + 1, c + 1) + f(a + 4, c + 1) + f(a * 2, c + 1)
print(f(3, 0))
Ответ: 37