Исполнитель Щелчок преобразует число на экране. У исполнителя есть две команды:
1. Прибавить
2. Умножить на
Программа для исполнителя — это последовательность команд.
В какое минимальное число мог направиться исполнитель из числа , если до пункта назначения он добрался с помощью
различных программ.
Решение 1 (Рекурсия):
def f(x, y):
if x > y:
return 0
if x == y:
return 1
return f(x + 1, y) + f(x * 2, y)
a = set()
for y in range(2, 100):
if f(1, y) == 36:
a.add(y)
print(min(a))
Решение 2 (Динамика):
a = [0] * 100
a[1] = 1
for i in range(1, 30):
a[i + 1] += a[i]
a[i * 2] += a[i]
print(a.index(36))