РУҚА
16

Шешімі: Вывод рекурсивной функции

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

Ниже на пяти языках программирования записана рекурсивная функция (процедура) F. Функция сначала выводит значение n, затем, если n >= 3, вызывает F(n - 1), а после этого — F(n - 3). Что выведет программа при вызове F(5)?

Тапсырманы ашып, өзіңіз шешіңіз
Дальше ответЕгер әлі шешіп жатсаңыз – кеңестерден бастаңыз: олар жауапқа жетелейді, бірақ оны ашпайды.
К подсказкам

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

5 қадам
1

Вызов $F(5)$ сначала выводит цифру 5, затем вызывает $F(4)$ и $F(2)$.

$$F(5) \to 5, F(4), F(2)$$
2

Раскрываем вызов $F(4)$: выводится 4, затем выполняются $F(3)$ и $F(1)$.

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

Вызов $F(3)$ выводит 3, затем выполняет $F(2)$ и $F(0)$. Вызовы с аргументами 2, 1 и 0 только выводят значение.

$$F(3) \to 3, 2, 0$$
4

Последовательность вывода для $F(4)$ равна 43201, а затем после завершения $F(4)$ вызывается $F(2)$ из исходного вызова.

$$F(4) \to 43201$$

Объединяем все значения в порядке выполнения вызовов.

$$5 + 43201 + 2 = 5432012$$
Жауап
5432012
5432012
так ответ выглядит в бланке

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

Меняют местами вызовы F(n - 1) и F(n - 3).

Не выводят значения при n < 3.

Пытаются записать только конечные значения рекурсивных вызовов, не учитывая первоначальный вывод n.

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

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

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

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