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

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

F(n) = n, при n ≤ 3

F(n) = 2*n + F(n — 1), при четном n и n > 3;

F(n) = n*n + F(n — 2), при нечетном n и n > 3;

Определите количество натуральных значений n на отрезке [1; 100], при которых F(n) кратно 3.

def f(n):
    if n <= 3:
        return n
    elif n % 2 == 0:
        return 2 * n + f(n - 1)
    else:
        return n * n + f(n - 2)
cnt = 0
for i in range(1, 101):
    x = f(i)
    if x % 3 == 0:
        cnt += 1
print(cnt)

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