айтишнику.рф

ЕГЭ по информатике Задача № 2279 с сайта К. Полякова методом кеширования

ЕГЭ по информатике
Задача № 2279
Задание КИМ № 16: Вычисление значения рекурсивной функции
Раздел № 44: Вычисление значения рекурсивной функции

Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = n*n*n + n, при n > 20
F(n) = 3*F(n+1) + F(n+3), при чётных n ≤ 20
F(n) = F(n+2) + 2*F(n+3), при нечётных n ≤ 20
Определите количество натуральных значений n из отрезка [1; 1000], для которых значение F(n) не содержит цифру 1.

from functools import *
l = []
@lru_cache(None)
def f(n):
 if n > 20: return n*n*n + n
 if n <= 20 and n % 2 == 0: return 3*f(n+1) + f(n+3)
 return f(n+2) + 2 *f(n+3)

for i in range(1000, 0, -1):
 a = f(i)
 if not "1" in str(a):
  l.append(a)
print(len(l))
37 просмотров
0 комментариев
Последние

Комментариев пока нет