Задача к ЕГЭ по информатике на тему «две функции» №1

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

F (n) = n2  , при n < 20

F (n) = G(n∕∕2)∗ 3− F(n − 2)  , если n > 19  » class=»math» src=»/images/inform/quest/quest-5231-7.svg» width=»auto»> и остаток от деления <img decoding= на 2 равен 0

F (n) = G(n − 2)  , если n > 19  » class=»math» src=»/images/inform/quest/quest-5231-10.svg» width=»auto»> и остаток от деления <img decoding= на 2 равен 1

G (n) = 3∗ n+ F(n − 2)  , если n < 20  и не делится на 5

G (n) = G(n − 2) + F(n∕∕5)  , если n < 20  и делится на 5

G (n) = n3  , в других случаях

Определите наибольшее значение n  из отрезка [1;480]  , при котором сумма цифр значения F(n)  равна 48.

Решение программой:

def f(n):
    if n > 19 and n % 2 == 0:
        return g(n // 2) * 3 - f(n - 2)
    if n > 19 and n % 2 == 1:
        return g(n - 2)
    return n ** 2

def g(n):
    if n < 20 and n % 5 != 0:
        return 3 * n + f(n - 2)
    elif n < 20 and n % 5 == 0:
        return g(n - 2) + f(n // 5)
    return n ** 3

for i in range(480, 0, -1):
    s, summa = abs(f(i)), 0
    while s > 0:
        summa += (s % 10)
        s //= 10
    if summa == 48:
        print(i)
        break

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