Найти тему

Разбор задания №16 по информатике из демоверсии 2021. Решаем двумя способами. С помощью рекурсии и циклов в Python.

Оглавление
Алгоритм вычисления значения функции F(n), где n – натуральное число,задан следующими соотношениями:
F(n) = 1 при n = 1;
F(n) = n + F(n − 1), если n – чётно,
F(n) = 2 × F(n − 2), если n > 1 и при этом n – нечётно.
Чему равно значение функции F(26)?

Решение с применением рекурсии

Рекурсивной называется процедура, вызывающая сама себя.

Для решения этой задачи нам необходимо написать программу, которая будет содержать условия. При выполнении этих условий, будут выполняться команды. В задаче эти условия и команды которые нужно выполнять нам даны. Нужно все это просто написать на языке программирования. Мы будем писать на Питоне.

-2

Пройдемся по строкам нашей программы:

  • def f(n): - объявили функцию f(n);
  • if n == 1: - задаем условие, если f(n) = 1, то выполняется следующее действие;
  • return 1 - означает что n = 1. Оператор return возвращает значение 1 функции;
  • elif n % 2 == 0: - иначе проверяется условие, если f(n) - четное, то выполняется следующее действие;
  • return n + f(n-1) - оператор return возвращает значение n + f(n-1) функции; т.е. f(n) = n + f(n − 1);
  • else: - иначе, если число нечетное, то выполняется следующее действие;
  • return 2 * f(n-2) - оператор return возвращает значение 2 * f(n-2) функции; т.е. 2 * f(n − 2)
  • print(f(26)) - вызываем функцию f(n), где n = 26. И выводим результат на экран.

Ответом к этому заданию будет число - 4122

16 задание я советую решать именно так, а следующий способ с применением циклов, я написала для вас, чтобы вы смогли понять что же такое рекурсия и какие шаги проделывает наша программа, прежде чем получить число 4122

Решение с применением цикла

Этот способ стоит изучать только для того чтобы понять каким образом работает рекурсия в нашей задаче. В общем для тех кто любопытный и хочет разобраться. А вообще достаточно научится писать программу с функцией которая вызывает сама себя.

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

Строки - print("Если n =", i, "a =", a), в данной программе функционала никакого не несут, они нужны просто для наглядности. Чтобы вы видели как меняются результат на каждом шаге. В range мы пишем n + 1, для того чтобы цикл прошел по числу 26.

Если хотите более подробный разбор этого способа или есть вопросы, то пишите! И не забывайте подписываться на мой канал и готовится к ЕГЭ по информатике вместе со мной.

Что-то пошло не так, и нам не удалось загрузить комментарии. Попробуйте ещё раз
Рекомендуем почитать
Задания на ЕГЭ по информатике резко изменили. Ожидаем очень низких результатов.
Такое ощущение, что проблем с написанием ОГЭ и ЕГЭ в этом году будет столько, сколько учеников сдают данные экзамены. И вот прошел очередной этап сдачи ЕГЭ по информатике. Сразу же после написания личка Мизулиной заполнилась жалобами по поводу проведения и составления экзамена. Задания были не из банка ФИПИ, снова проблема с компьютерами, дети из-за этого нервничают. А кому-то наоборот везет и он находит на своем ПК ответы. Давайте обо всем по порядку. Левые задания Как обычно готовятся к экзаменам дети? Да и не только сами они, а и учители, и репетиторы...
🐍📋 F-строки в Python для интерполяции и форматирования строк
Из этой статьи вы узнаете, как использовать f-строки — инструмент для быстрой интерполяции и форматирования строк, который превосходит по эффективности и читабельности классические подходы с применением оператора % и метода .format(). Данная статья является переводом. Ссылка на оригинал. К концу этого руководства вы поймете, почему f-строки – это мощный инструмент, которым необходимо овладеть разработчику на Python. В этом самоучителе вы узнаете, как: Для извлечения максимальной пользы от этого руководства, вы должны быть знакомы с типом данных строк Python...
ОГЭ информатика задание 6 c параметром А, чтобы всем стало ясно
Мне тут после вчерашней статьи про задание №16 Митёк Мурашкин написал как я даю задание №6. Отвечаю. Я даю его в электронных таблицах. Так проще, дети выполняют по алгоритму и результат получается. Что это за задание такое. Оно как бы на программирование Даны пять фрагментов программ на разных языках (укажу 4 из них) Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел: (10, 10); (10, 6); (–4, 8); (2, 9); (12, 7); (–11, 4); (–8, 13);...
Следующая статья
Документы, вакансии и контакты