Задача к ЕГЭ по информатике на тему «прочие прототипы» №3

Исполнитель Щелчок преобразует число на экране. У исполнителя есть две команды:

1. Прибавить 1

2. Умножить на 2

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

В какое минимальное число мог направиться исполнитель из числа 1  , если до пункта назначения он добрался с помощью 36  различных программ.

Решение 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))

Ответ: 16
Оцените статью
Я решу все!