16. Рекурсия

Рекурсивные алгоритмы в программировании (страница 6)

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

Это старая версия каталога задач

Нажмите для перехода на новую версию

Решаем задачи
Задание 36 #15209

Ниже на трёх языках программирования записан рекурсивный алгоритм F. \[\begin{array}{ | l | l | l |} \hline Python & C++ & Pascal \\ \hline def\; F(n): & void\; F(int\; n) & procedure\; F(n:\; integer); \\ \quad if\; n\; >\; 1: & \{ & \quad begin \\ \quad\quad F(n\; -\; 3) & \quad if\; (n\; >\; 1) & \quad\quad if\; n\; >\; 1\; then \\ \quad\quad print(n) & \quad \{ & \quad\quad\quad begin \\ \quad\quad F(n-2) & \quad\quad F(n-\; 3); & \quad\quad\quad \; \; \; F(n\; -\; 3); \\ \quad\quad F(n-1) & \quad\quad cout\; <<\; n; & \quad\quad\quad \; \; writeln(n); \\ \quad \; \; \; & \quad\quad F(n\; -\; 2); & \quad\quad\quad \; \; \; F(n-2); \\ & \quad\quad F(n-1); & \quad\quad\quad \; \; \; F(n-1); \\ & \quad \} & end \\ & \} & end \\ \hline \end{array}\]

Определите, что выведет программа при вызове функции F(5)? Цифры запишите в той последовательности, в которой они выводятся.

 

Показать решение

При вызове \(F(-1)\), \(F(0)\) и \(F(1)\) программа ничего не выведет. Пропишем весь алгоритм, начиная с \(F(2)\):
\( F(2)\rightarrow F(-1)2F(0)F(1) = 2\\ F(3)\rightarrow F(0)3F(1)F(2)= 32\\ F(4)\rightarrow F(1)4F(2)F(3) = 4232\\ F(5)\rightarrow F(2)5F(3)F(4)= 25324232\\ \)

Программа вывела \(25324232\), это - ответ на вопрос задачи.

Ответ: 25324232
Задание 37 #15210

Ниже на трёх языках программирования записан рекурсивный алгоритм F. \[\begin{array}{ | l | l | l |} \hline Python & C++ & Pascal \\ \hline def\; F(n): & void\; F(int\; n) & procedure\; F(n:\; integer); \\ \quad if\; n\; >\; 1: & \{ & \quad begin \\ \quad\quad F(n\; -\; 3) & \quad if\; (n\; >\; 1) & \quad\quad if\; n\; >\; 1\; then \\ \quad\quad F(n-2) & \quad \{ & \quad\quad\quad begin \\ \quad\quad print(n) & \quad\quad F(n-\; 3); & \quad\quad\quad \; \; \; F(n\; -\; 3); \\ \quad\quad F(n-1) & \quad\quad F(n\; -\; 2); & \quad\quad\quad \; \; \; F(n-2); \\ \quad \; \; \; & \quad\quad cout\; <<\; n; & \quad\quad\quad \; \; writeln(n); \\ & \quad\quad F(n-1); & \quad\quad\quad \; \; \; F(n-1); \\ & \quad \} & end \\ & \} & end \\ \hline \end{array}\] Определите, что выведет программа при вызове функции F(5)? Цифры запишите в той последовательности, в которой они выводятся.

 

Показать решение

При вызове \(F(-1)\), \(F(0)\) и \(F(1)\) программа ничего не выведет. Пропишем весь алгоритм, начиная с \(F(2)\):
\( F(2)\rightarrow F(-1)F(0)2F(1) = 2\\ F(3)\rightarrow F(0)F(1)3F(2)= 32\\ F(4)\rightarrow F(1)F(2)4F(3) = 2432\\ F(5)\rightarrow F(2)F(3)5F(4)= 23252432\\ \)

Программа вывела \(23252432\), это - ответ на вопрос задачи.

Ответ: 23252432
Задание 38 #15211

Ниже на трёх языках программирования записан рекурсивный алгоритм F. \[\begin{array}{ | l | l | l |} \hline Python & C++ & Pascal \\ \hline def\; F(n): & void\; F(int\; n) & procedure\; F(n:\; integer); \\ \quad if\; n\; >\; 1: & \{ & \quad begin \\ \quad\quad F(n\; -\; 3) & \quad if\; (n\; >\; 1) & \quad\quad if\; n\; >\; 1\; then \\ \quad\quad F(n-2) & \quad \{ & \quad\quad\quad begin \\ \quad\quad F(n-1) & \quad\quad F(n-\; 3); & \quad\quad\quad \; \; \; F(n\; -\; 3); \\ \quad\quad print(n) & \quad\quad F(n\; -\; 2); & \quad\quad\quad \; \; \; F(n-2); \\ \quad \; \; \; & \quad\quad F(n-1); & \quad\quad\quad \; \; \; F(n-1); \\ & \quad\quad cout\; <<\; n; & \quad\quad\quad \; \; writeln(n); \\ & \quad \} & end \\ & \} & end \\ \hline \end{array}\]

Определите, что выведет программа при вызове функции F(5)? Цифры запишите в той последовательности, в которой они выводятся.

 

Показать решение

При вызове \(F(-1)\), \(F(0)\) и \(F(1)\) программа ничего не выведет. Пропишем весь алгоритм, начиная с \(F(2)\):
\( F(2)\rightarrow F(-1)F(0)F(1)2 = 2\\ F(3)\rightarrow F(0)F(1)F(2)3= 23\\ F(4)\rightarrow F(1)F(2)F(3)4 = 2234\\ F(5)\rightarrow F(2)F(3)F(4)5= 22322345\\ \)

Программа вывела \(22322345\), это - ответ на вопрос задачи.

Ответ: 22322345
Задание 39 #15212

Ниже на трёх языках программирования записан рекурсивный алгоритм F. \[\begin{array}{ | l | l | l |} \hline Python & C++ & Pascal \\ \hline def\; F(n): & void\; F(int\; n) & procedure\; F(n:\; integer); \\ \quad if\; n\; >\; 1: & \{ & \quad begin \\ \quad\quad F(n\; -\; 3) & \quad if\; (n\; >\; 1) & \quad\quad if\; n\; >\; 1\; then \\ \quad\quad F(n-2) & \quad \{ & \quad\quad\quad begin \\ \quad\quad print(n) & \quad\quad F(n-\; 3); & \quad\quad\quad \; \; \; F(n\; -\; 3); \\ \quad \; \; \; & \quad\quad F(n\; -\; 2); & \quad\quad\quad \; \; \; F(n-2); \\ & \quad\quad cout\; <<\; n; & \quad\quad\quad \; \; writeln(n); \\ & \quad \} & end \\ & \} & end \\ \hline \end{array}\]

Определите, что выведет программа при вызове функции F(6)? Цифры запишите в той последовательности, в которой они выводятся.

 

Показать решение

При вызове \(F(-1)\), \(F(0)\) и \(F(1)\) программа ничего не выведет. Пропишем весь алгоритм, начиная с \(F(2)\):
\( F(2)\rightarrow F(-1)F(0)2 = 2\\ F(3)\rightarrow F(0)F(1)3= 3\\ F(4)\rightarrow F(1)F(2)4 = 24\\ F(5)\rightarrow F(2)F(3)5=235\\ F(6)\rightarrow F(3)F(4)6= 3246\\ \)

Программа вывела \(3246\), это - ответ на вопрос задачи.

Ответ: 3246
Задание 40 #15213

Ниже на трёх языках программирования записан рекурсивный алгоритм F. \[\begin{array}{ | l | l | l |} \hline Python & C++ & Pascal \\ \hline def\; F(n): & void\; F(int\; n) & procedure\; F(n:\; integer); \\ \quad if\; n\; >\; 1: & \{ & \quad begin \\ \quad\quad F(n\; -\; 3) & \quad if\; (n\; >\; 1) & \quad\quad if\; n\; >\; 1\; then \\ \quad\quad print(n) & \quad \{ & \quad\quad\quad begin \\ \quad\quad F(n-2) & \quad\quad F(n-\; 3); & \quad\quad\quad \; \; \; F(n\; -\; 3); \\ \quad \; \; \; & \quad\quad cout\; <<\; n; & \quad\quad\quad \; \; writeln(n); \\ & \quad\quad F(n\; -\; 2); & \quad\quad\quad \; \; \; F(n-2); \\ & \quad \} & end \\ & \} & end \\ \hline \end{array}\] Определите, что выведет программа при вызове функции F(7)? Цифры запишите в той последовательности, в которой они выводятся.

 

Показать решение

При вызове \(F(-1)\), \(F(0)\) и \(F(1)\) программа ничего не выведет. Пропишем весь алгоритм, начиная с \(F(2)\):
\( F(2)\rightarrow F(-1)2F(0) = 2\\ F(3)\rightarrow F(0)3F(1)= 3\\ F(4)\rightarrow F(1)4F(2) = 42\\ F(5)\rightarrow F(2)5F(3)=253\\ F(6)\rightarrow F(3)6F(4)= 3642\\ F(7)\rightarrow F(4)7F(5)= 427253\\ \)

Программа вывела \(427253\), это - ответ на вопрос задачи.

Ответ: 427253
Задание 41 #15214

Ниже на трёх языках программирования записан рекурсивный алгоритм F. \[\begin{array}{ | l | l | l |} \hline Python & C++ & Pascal \\ \hline def\; F(n): & void\; F(int\; n) & procedure\; F(n:\; integer); \\ \quad if\; n\; >\; 1: & \{ & \quad begin \\ \quad\quad print(n) & \quad if\; (n\; >\; 1) & \quad\quad if\; n\; >\; 1\; then \\ \quad\quad F(n\; -\; 3) & \quad \{ & \quad\quad\quad begin \\ \quad\quad F(n-2) & \quad\quad cout\; <<\; n; & \quad\quad\quad \; \; writeln(n); \\ \quad \; \; \; & \quad\quad F(n-\; 3); & \quad\quad\quad \; \; \; F(n\; -\; 3); \\ & \quad\quad F(n\; -\; 2); & \quad\quad\quad \; \; \; F(n-2); \\ & \quad \} & end \\ & \} & end \\ \hline \end{array}\] Определите, что выведет программа при вызове функции F(7)? Цифры запишите в той последовательности, в которой они выводятся.

 

Показать решение

При вызове \(F(-1)\), \(F(0)\) и \(F(1)\) программа ничего не выведет. Пропишем весь алгоритм, начиная с \(F(2)\):
\( F(2)\rightarrow 2F(-1)F(0) = 2\\ F(3)\rightarrow 3F(0)F(1)= 3\\ F(4)\rightarrow 4F(1)F(2) = 42\\ F(5)\rightarrow 5F(2)F(3)=523\\ F(6)\rightarrow 6F(3)F(4)= 6342\\ F(7)\rightarrow 7F(4)F(5)= 742523\\ \)

Программа вывела \(742523\), это - ответ на вопрос задачи.

Ответ: 742523
Задание 42 #15215

Ниже на трёх языках программирования записан рекурсивный алгоритм F. \[\begin{array}{ | l | l | l |} \hline Python & C++ & Pascal \\ \hline def\; F(n): & void\; F(int\; n) & procedure\; F(n:\; integer); \\ \quad \; print(n) & \{ & \quad begin \\ \quad if\; n\; >\; 4: & \quad cout\; <<\; n; & \quad \; \; writeln(n); \\ \quad\quad print(n) & \quad if\; (n\; >\; 4) & \quad \; \; \; if\; n\; >\; 4\; then \\ \quad\quad F(n\; -\; 3) & \quad \{ & \quad\quad\quad begin \\ \quad\quad F(n-2) & \quad\quad cout\; <<\; n; & \quad\quad\quad \; \; writeln(n); \\ \quad \; \; \; & \quad\quad F(n-\; 3); & \quad\quad\quad \; \; \; F(n\; -\; 3); \\ & \quad\quad F(n\; -\; 2); & \quad\quad\quad \; \; \; F(n-2); \\ & \quad \} & end \\ & \} & end \\ \hline \end{array}\] Определите, что выведет программа при вызове функции F(7)? Цифры запишите в той последовательности, в которой они выводятся.

 

Показать решение

При вызове \(F(2)\) программа выведет 2, при вызове \(F(3)\) программа выведет 3, при вызове \(F(4)\) программа выведет 4. Пропишем весь алгоритм, начиная с \(F(5)\):
\( F(5)\rightarrow 55F(2)F(3)=5523\\ F(6)\rightarrow 66F(3)F(4)= 6634\\ F(7)\rightarrow 77F(4)F(5)= 7745523\\ \)

Программа вывела \(7745523\), это - ответ на вопрос задачи.

Ответ: 7745523
1

...

5

6

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