Задача к ЕГЭ по информатике на тему «Рекурсивные алгоритмы» №1

Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:

F (n) = 2∗ n∗n + 4∗ n+ 3  , при n ≤ 15

F (n) = F(n − 1) +n ∗n + 3  , при n > 15  » class=»math» src=»/images/inform/quest/quest-5661-4.svg» width=»auto»>, кратных 3 </p>
<p class= F (n) = F(n − 2) +n − 6  , при n > 15  » class=»math» src=»/images/inform/quest/quest-5661-6.svg» width=»auto»>, не кратных 3 </p>
<p class= Определите количество натуральных значений n из отрезка [1; 1000], для которых все цифры значения F(n) нечётные.

def f(n):
    if n <= 15:
        return 2 * n * n + 4 * n + 3
    elif n > 15 and n % 3 == 0:
        return f(n - 1) + n * n + 3
    elif n > 15 and n % 3 != 0:
        return f(n - 2) + n - 6

cnt = []
for i in range(1, 1001):
    x = f(i)
    flag = True
    while x > 0:
        if (x % 10) % 2 == 0:
            flag = False
            break
        x //= 10
    if flag:
        cnt.append(i)
print(len(cnt))

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