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

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

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

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

F(1) →  1  ;

F(2) →

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

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

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

F(3) →

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

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

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

F(4) →

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

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

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

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

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