Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела рекурсия
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#6812

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

Что выведет программа при вызове 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

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение

Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты

Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей

Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!