Тема 16. Рекурсивные алгоритмы

16.02 Две функции

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела рекурсивные алгоритмы
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#30453

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

F (n) = n  , при n < 12

F (n) = G(n∕2)∗ 2− F(n − 1)  , если n > 11  и остаток от деления n  на 2 равен 0

F (n) = − G (n − 1)  , если n > 11  и остаток от деления n  на 2 равен 1

G (n) = F(n − 1) +n  , если n < 12  и не делится на 3

G (n) = G(n − 1) + F(n∕3)− n  , если n < 12  и делится на 3

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

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

Примечание: знак </> в данной задаче означает целочисленное деление.

Показать ответ и решение
def f(n):
    if n > 11 and n % 2 == 0:
        return g(n // 2) * 2 - f(n - 1)
    if n > 11 and n % 2 == 1:
        return -g(n - 1)
    return n
def g(n):
    if n < 12 and n % 3 != 0:
        return f(n - 1) + n
    elif n < 12 and n % 3 == 0:
        return g(n - 1) + f(n // 3) - n
    return n * n
for i in range(1000, 0, -1):
    s, summa = abs(f(i)), 0
    while s > 0:
        summa += (s % 10)
        s //= 10
    if summa == 33:
        print(i)
        break

Ответ: 946

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение

Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты

Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей

Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!