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

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

Задача 1#7606

Ниже на трех языках программирования записана рекурсивная функция (процедура) 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          |  print(” ∗ ”) |    printf(” ∗ ”);|
|  begin                 |  F (n − 1)    |    F (n − 1);    |
|    writeln (” ∗ ”);     |  F (n∕∕2 )    |    F (n∕2);      |
|    F (n − 1);          |               |  }               |
|                        |               |                  |
|    F (n div 2);         |               |}                 |
|  end;                  |               |                  |
-end.--------------------------------------------------------
Сколько символов «∗ » будет напечатано на экране при выполнении вызова F(7)  ?
Показать ответ и решение

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

При запуске F (3)  на экране появляется один символ «∗ ». Далее никакие функции не вызываются. F (3) → ∗ .

При запуске F (4)  на экране появляется один символ «∗ ». Далее вызываются функции F (4 − 1 = 3)  и F (4∕2 = 2)  . Так как n > 2  , то смотрим на F(3)  и добавляем количество символов от данной функции к количеству символов от F (4)  .

F(3) →  ∗

F(4) →  ∗∗ .

Далее действуем по тому же принципу, возвращаясь к предыдущим значениям и добавляя количество символов к текущему:

F(3) →  ∗ ;

F(4) →  ∗∗ ;

F(5) →  ∗ ∗ ∗ . Т.к. 5 >  2  печатется один символ «∗ » , а также вызывались функции F (4)  и F (2)  . Так как n > 2  , то взяли кол-во символов только от F (4)  .

F(6) →  ∗ ∗ ∗ ∗ ∗ . Т.к. 6 > 2  печатется один символ «∗ » , а также вызывались функции F(5)  и F (3  ). Того 5 символов.

F(7) →  ∗ ∗ ∗ ∗ ∗ ∗ ∗ . Т.к. 7 > 2  печатется один символ «∗ » , а также вызывались функции  F(6)  и F (3)  . Того 7 символов.

Ответ: 7

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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