РУҚА
16

Шешімі: Реті рекурсивных вызовов

ЕГЭ · Информатика · Тапсырма 16 · Бағдарламалау негіздері
КүрделіФИПИ4E2770Қысқа жауап≈ 4 минутТалдау 5 қадамЖауап сверен с ключом
Условие

Ниже на пяти языках программирования записан один и тот же рекурсивный алгоритм F. Если n > 0, алгоритм сначала вызывает F(n - 1), затем выводит n, а после этого вызывает F(n - 2). Определите последовательность чисел, которая будет выведена при выполнении вызова F(4).

Python
1def F(n):
2    if n > 0:
3        F(n - 1)
4        print(n)
5        F(n - 2)
Тапсырманы ашып, өзіңіз шешіңіз
Дальше ответЕгер әлі шешіп жатсаңыз – кеңестерден бастаңыз: олар жауапқа жетелейді, бірақ оны ашпайды.
К подсказкам

Шешім по шагам

5 қадам
1

При n ≤ 0 условие не выполняется, поэтому вызов ничего не выводит.

$$F(n)=\varnothing\text{ при }n\leq 0$$
2

Для вызова F(1) сначала выполняется F(0), затем выводится 1, после чего выполняется F(-1).

$$F(1)\to 1$$
3

Для вызова F(2): сначала выполняется F(1), затем выводится 2, затем выполняется F(0).

$$F(2)\to 12$$
4

Для вызова F(3): сначала выводится результат F(2), затем 3, затем результат F(1).

$$F(3)\to 12\,3\,1=1231$$

Для вызова F(4): сначала выводится результат F(3), затем 4, затем результат F(2).

$$F(4)\to 1231\,4\,12=1231412$$
Жауап
1231412
1231412
так ответ выглядит в бланке

Где здесь ошибаются

Выводят n до выполнения первого рекурсивного вызова.

Забывают второй вызов F(n - 2).

Продолжают рекурсию при n ≤ 0.

Закрепить приёмВ теме «Бағдарламалау негіздері» ещё 159 тапсырма — жауабымен және дәл осындай талдауымен.
Жаттығу

Тапсырманы қалай шешу керек 16 ЕГЭ, информатика

Бұл есептің талдауы келесіге бөлінген: 5 шагов: видно, откуда берётся каждое число и где теряется балл. Жауап есептеулердің жанында келтірілген, олардың орнына емес.

Задача из темы «Бағдарламалау негіздері»: в ней 160 задач, и у каждой есть такой же разбор. Тіркеу қажет емес.