Алгоритм вычисления значения функции , где
— целое число, задан следующими соотношениями:
, при
10 » class=»math» width=»auto»>
, при <img src="/images/inform/quest/quest-3331-6.svg" alt="n
Определите количество значений из отрезка
, при которых значение
кратно 3.
### Подключим lru_cache и sys
### для запоминания посчитанных значений рекурсии
### а также увеличения глубины рекурсии (sys)
from functools import lru_cache
import sys
sys.setrecursionlimit(100000000)
@lru_cache(None)
def f(n):
if n > 10:
return 2 ** n + 3
else:
return f(n + 2) + 2 * f(n + 1)
ans = 0
for i in range(-1000, 1001):
if f(i) % 3 == 0:
ans += 1
print(ans)
Ответ: 253