Задача к ЕГЭ по информатике на тему «рекурсия» №1

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

|-------------------------|--------------|----------------------| |Pascal-------------------|Python--------|C---------------------| |procedure F (n: integer);|def F (n):    |void F(int n){        | |begin                    |  if n > 2:   |  if (n > 2){         | |                         |              |                      | |   if n > 2 then          |    F (n − 1) |    F (n − 1);        | |   begin                  |    F (n∕∕2)  |    F (n∕2 );          | |     F (n −  1);          |    print(n)  |    printf("%d ", n); | |     F(n div 2);         |              |  }                   | |     writeln(n);         |              |}                     | |                         |              |                      | |   end;                  |              |                      | -end.————————————————————| » class=»math-display» width=»auto»></center> </p>
<p class= Что выведет программа при вызове F (4)  ? В ответе запишите последовательность выведенных цифр слитно (без пробелов).

Данная рекурсивная функция останавливается, если n  принимает значение 2 или меньше. Следовательно, начнем выполнение функции, когда n = 3  .

С помощью стрелочки → обозначим печать символа на экране.Рассмотрим последовательно, что будет выводится на экран, начиная с F (3)  :

F(3) →

→  F (2) → ∘ (От данного значения нет вывода числа на экран);

→  F (1) → ∘ (От данного значения нет вывода числа на экран);

→  n →  3  (Выводится текущее значение n  ).

F(4) →

→  F (3) → 3  (Выводится число, которое было получено от F (3)  в предыдущем шаге);

→  F (2) → ∘ (От данного значения нет вывода числа на экран);

→  n →  4  (Выводится текущее значение n  ).

F(5) →

→  F (4) → 34  (Выводится число, которое было получено от F(4)  в предыдущем шаге);

→  F (2) → ∘ (От данного значения нет вывода числа на экран);

→  n →  5  (Выводится текущее значение n  ).

F(6) →

→  F (5) → 345  (Выводится число, которое было получено от F(5)  в предыдущем шаге);

→  F (3) → 3  (Выводится число, которое было получено от F (3)  );

→  n →  6  (Выводится текущее значение n  ).

Следовательно, итоговая последовательность →  34536  .

Ответ: 34536
Оцените статью
Я решу все!