РУҚА
16

Рекурсивный подсчёт звёздочек

ЕГЭ · Информатика · Задание 16 · Основы программирования
ПовышеннаяФИПИC05392Короткий ответ≈ 3 минутыОтвет сверен с ключом

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

Условие как в банке ФИПИ — открыть и сверить
Впишите правильный ответ.

Ниже на пяти языках программирования записаны две рекурсивные функции (процедуры): F и G.

Бейсик

Python

DECLARE SUB F(n)

DECLARE SUB G(n)

SUB F(n)

IF n > 0 THEN G(n - 1)

END SUB

SUB G(n)

PRINT "*"

IF n > 1 THEN F(n - 2)

END SUB

def F(n):

if n > 0:

G(n - 1)

def G(n):

print("*")

if n > 1:

F(n - 2)

Алгоритмический язык

Паскаль

алг F(цел n)

нач

если n > 0 то

G(n - 1)

все

кон

алг G(цел n)

нач

вывод "*"

если n > 1 то

F(n - 2)

все

кон

procedure F(n: integer); forward;

procedure G(n: integer); forward;

procedure F(n: integer);

begin

if n > 0 then

G(n - 1);

end;

procedure G(n: integer);

begin

writeln('*');

if n > 1 then

F(n - 2);

end;

Си

void F(int n);
void G(int n);

void F(int n){

if (n > 0)

G(n - 1);

}

void G(int n){

printf("*");

if (n > 1)

F(n - 2);

}

Сколько символов «звёздочка» будет напечатано на экране при выполнении вызова F(13)?



Ваш ответ

Формат: число или слово без единиц измерения; дробную часть отделяйте запятой.

!
3 уровня: от лёгкого толчка до почти готового решения. Следующий открывается, когда прочитан предыдущий, — чтобы не перепрыгнуть сразу к ответу.
1Мягкая — с чего смотретьуровень 1 из 3

Каждый вызов $G$ печатает ровно один символ «*». С каким аргументом вызывается следующий $F$ после $F(n)$?

2Наводящая — какие числа считатьуровень 2 из 3

Цепочка аргументов вызовов функции $F$ уменьшается на 3: $F(13) \to F(10) \to F(7) \to F(4) \to F(1)$.

3Прямая — фактически решениеуровень 3 из 3

Каждый из пяти вызовов $F$ порождает вызов $G$, поэтому печатается по одному символу: $5$ символов.

Всё равно не складывается?Полное решение с обоснованием каждого шага — на отдельной странице.
Открыть решение

Задание 16 ЕГЭ, информатика

Задача из темы «Основы программирования»: в ней 160 задач с ответом и разбором по шагам. В 16-м номере бланка — 74 задачи.

Ответ можно проверить здесь же, а если не выходит — открыть подсказку или разбор. Регистрация не нужна.