РУҚА
16

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

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

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

Функция F(n) при $n > 0$ вызывает G(n − 1). Функция G(n) печатает символ «звёздочка», а при $n > 1$ вызывает F(n − 3).

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

Условие как в банке ФИПИ — открыть и сверить
Дұрыс жауапты жазыңыз.

Ниже на пяти языках программирования записаны две рекурсивные функции (процедуры): 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 - 3)

END SUB

def F(n):

if n > 0:

G(n - 1)

def G(n):

print("*")

if n > 1:

F(n - 3)

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

Паскаль

алг F(цел n)

нач

если n > 0 то

G(n - 1)

все

кон

алг G(цел n)

нач

вывод "*"

если n > 1 то

F(n - 3)

все

кон

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 - 3);

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 - 3);

}

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



Сіздің жауабыңыз

Формат: өлшем бірліктері жоқ сан немесе сөз; бөлшек бөлігін үтірмен бөліңіз.

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

Сколько звёздочек печатает один вызов G? При каком условии после этого вызывается F?

2Жетекші — қандай сандарды есептеудеңгей 2 из 3

Для $n > 2$ число звёздочек при вызове F(n) удовлетворяет рекуррентному соотношению $f(n) = 1 + f(n - 4)$.

3Тікелей — іс жүзінде шешімдеңгей 3 из 3

Последовательно уменьшайте аргумент F: $18 \to 14 \to 10 \to 6 \to 2$. При $n = 2$ функция F вызывает G, которая печатает одну звёздочку и больше рекурсивных вызовов не делает.

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

Тапсырма 16 ЕГЭ, информатика

Задача из темы «Бағдарламалау негіздері»: в ней 160 задач жауабымен және қадамдық талдауымен. В 16-м номере бланка — 74 задачи.

Жауапты осы жерде тексеруге болады, ал егер шықпаса — ашуға болады көмекші кеңес немесе талдау. Тіркелу қажет емес.