Автор: Досрочная волна 2024
Уровень: Базовый Условие задачи: У исполнителя есть три команды, которые обозначены латинскими буквами:
A. Прибавить 1
B. Прибавить 2
C. Умножить на 2 Сколько существует программ, которые преобразуют число 7 в число 51, и при этом траектория вычислений содержит числа 13 и 15, но не содержит числа 35? Теоретическая справка: Довольно забавная программа, так как у некоторых ребят на стареньких компьютерах она считается долго. И можно воспользоваться кэшированием из 16 номера для ускорения вычислений! Код решения: Ответ: 174034068 Комментарии к коду: from functools import *
Импортируется модуль functools, который содержит полезные инструменты для работы с функциями (в частности - декоратор lru_cache). @lru_cache(None)
Декоратор, который запоминает результаты всех вызовов функции F.
Благодаря этому при повторных вызовах с теми же аргументами программа работает быстрее, не пересчитывая одно и то же. def F(a, b):
Определяется рекурсивная функция F, принимающая два