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

16.01 Одна функция

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

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

Задача 1#72418

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

F (n) = 1  при n = 1

F (n) = n+ F (n − 1)  , если n  чётно,

F (n) = 3∗ F(n− 2)  , если n  нечётно.

Чему равно значение функции F(30)  ? Для выполнения задания можно также написать программу или воспользоваться редактором электронных таблиц.

Показать ответ и решение

В задаче представлен рекурсивный алгоритм: функция F (n)  вычисляется в зависимости от чётности n  . Если n = 1  , возвращаем 1  — это базовый случай. Если n  чётное, используем формулу F (n ) = n+ F (n− 1)  , то есть значение функции равно текущему n  плюс значение функции для предыдущего числа. Если n  нечётное, используем формулу F (n ) = 3⋅F (n − 2)  , то есть значение функции в три раза больше значения функции для числа на два меньше. Внутри функции создаём ветвление для трёх случаев: n = 1  , n  чётное, n  нечётное. После определения функции вычисляем F (30)  по описанному рекурсивному алгоритму.

def F(n):
    # Базовый случай: если n = 1, возвращаем 1
    if n == 1:
        return 1
    # Если n чётное, используем формулу n + F(n-1)
    if n % 2 == 0:
        return n + F(n - 1)
    # Если n нечётное, используем формулу 3 * F(n-2)
    if n % 2 != 0:
        return 3 * F(n - 2)

# Вычисляем значение функции F(30)
print(F(30))

Ответ: 4782999

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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