Алгоритм решения задания 14. Часть 1
Учимся решать 15 задания первого типа
Читать
Исполнитель Троечка преобразует число, записанное на доске.
У Троечки есть две команды:
A. Вычесть 3
B. Умножить на -3
Первая команда уменьшает число на 3, вторая команда умножает его на –3.
Сколько различных отрицательных результатов можно получить из исходного числа 333 в ходе исполнения программы, содержащей ровно 13 команд?
Правильный ответ:
2224
from functools import lru_cache
@lru_cache(None)
def f(x, cnt=0):
if cnt == 13 and x < 0:
return {x}
if cnt > 13:
return set()
return f(x - 3, cnt + 1) | f(x * (-3), cnt + 1)
print(len(f(333)))
