У исполнителя Калькулятор есть две команды, которым присвоены номера:
- Прибавить
- Прибавить
Определите число, для получения которого из числа существует
программы.
Решение 1 (Рекурсия):
def f(s, fi):
if s > fi:
return 0
if s == fi:
return 1
return f(s + 2, fi) + f(s + 5, fi)
for i in range(6, 100):
if f(5, i) == 34:
print(i)
break
Решение 2 (Динамика):
a = [0] * 101
a[5] = 1
for i in range(6, 101):
a[i] += a[i - 2] + a[i - 5]
print(a.index(34))
Ответ: 27