РУҚА
16

Шешімі: Рекурсивный подсчёт звёздочек

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

Ниже на пяти языках программирования записаны две рекурсивные функции (процедуры) $F$ и $G$. Функция $F(n)$ вызывает $G(n-1)$, если $n>0$. Функция $G(n)$ печатает символ «*», а затем вызывает $F(n-2)$, если $n>1$. Сколько символов «*» будет напечатано на экране при выполнении вызова $F(13)$?

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

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

3 қадам
1

При вызове $F(n)$, если $n>0$, выполняется вызов $G(n-1)$. Функция $G$ печатает одну звёздочку и при аргументе больше 1 вызывает $F(n-3)$ относительно исходного аргумента $F$.

$$F(n)\to G(n-1)\to F(n-3)$$
2

Последовательность вызовов функций $F$ имеет вид:

$$F(13)\to F(10)\to F(7)\to F(4)\to F(1)$$

Каждый из этих пяти вызовов $F$ вызывает функцию $G$, которая печатает одну звёздочку. После вызова $G(0)$ дальнейший вызов $F$ не выполняется.

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

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

Учитывают только вызовы $G$ с аргументом больше 1 и не считают вызов $G(0)$.

Уменьшают аргумент следующего вызова $F$ на 2 вместо 3.

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

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

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

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