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

Ниже на трёх языках программирования записан рекурсивный алгоритм 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\; >\; 0: & \{ & \quad begin \\ \quad\quad F(n\; -\; 1) & \quad if\; (n\; >\; 0) & \quad\quad if\; n\; >\; 0\; then \\ \quad\quad F(n\; -\; 1) & \quad \{ & \quad\quad\quad begin \\ \quad\quad print(n) & \quad\quad F(n\; -\; 1); & \quad\quad\quad \; \; \; F(n\; -\; 1); \\ & \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(4)? Цифры запишите в той последовательности, в которой они выводятся.
При вызове \(F(0)\) программа ничего не выведет. Пропишем весь алгоритм, начиная с единицы:
\(
F(1)\rightarrow F(0) F(0) 1 = 1 \\
F(2)\rightarrow F(1) F(1) 2 = 112 \\
F(3)\rightarrow F(2) F(2) 3= 1121123\\
F(4)\rightarrow F(3) F(3) 4= 112112311211234\\
\)
\(112112311211234\) И будет ответом на вопрос задачи.
Ниже на трёх языках программирования записан рекурсивный алгоритм 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\; >\; 0: & \{ & \quad begin \\ \quad\quad F(n\; -\; 1) & \quad if\; (n\; >\; 0) & \quad\quad if\; n\; >\; 0\; then \\ \quad\quad F(n\; -\; 2) & \quad \{ & \quad\quad\quad begin \\ \quad\quad print(n) & \quad\quad F(n\; -\; 1); & \quad\quad\quad \; \; \; F(n\; -\; 1); \\ & \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(4)? Цифры запишите в той последовательности, в которой они выводятся.
При вызове \(F(0)\) и \(F(-1)\) программа ничего не выведет. Пропишем весь алгоритм, начиная с единицы:
\(
F(1)\rightarrow F(0) F(-1) 1 = 1 \\
F(2)\rightarrow F(1) F(0) 2 = 12 \\
F(3)\rightarrow F(2) F(1) 3= 1213\\
F(4)\rightarrow F(3) F(2) 4= 1213124\\
\)
\(1213124\) И будет ответом на вопрос задачи.
Ниже на трёх языках программирования записан рекурсивный алгоритм 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\; -\; 1) & \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\; -\; 1); & \quad\quad\quad \; \; \; F(n\; -\; 1); \\ & \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(5)? Цифры запишите в той последовательности, в которой они выводятся.
При вызове \(F(0)\) и \(F(1)\) программа ничего не выведет. Пропишем весь алгоритм, начиная с \(F(2)\):
\(
F(2)\rightarrow F(1) 2 F(0)= 2\\
F(3)\rightarrow F(2) 3 F(1)= 23\\
F(4)\rightarrow F(3) 4 F(2)= 2342\\
F(5)\rightarrow F(4) 5 F(3) = 2342523\\
\)
\(2342523\) И будет ответом на вопрос задачи.
Ниже на трёх языках программирования записан рекурсивный алгоритм 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\; -\; 1) & \quad \{ & \quad\quad\quad begin \\ \quad\quad F(n\; -\; 2) & \quad\quad cout\; <<\; n; & \quad\quad\quad \; \; writeln(n); \\ & \quad\quad F(n\; -\; 1); & \quad\quad\quad \; \; \; F(n\; -\; 1); \\ & \quad\quad F(n\; -\; 2); & \quad\quad\quad \; \; \; F(n\; -\; 2) \\ & \quad \} & end \\ & \} & end \\ \hline \end{array}\]
Определите сумму цифр при вызове функции F(5)?
При вызове \(F(0)\) и \(F(1)\) программа ничего не выведет. Пропишем весь алгоритм, начиная с \(F(2)\):
\(
F(2)\rightarrow 2 F(1) F(0) = 2\\
F(3)\rightarrow 3 F(2) F(1)= 32\\
F(4)\rightarrow 4 F(3) F(2)= 4322\\
F(5)\rightarrow 5 F(4) F(3) = 5432232\\
\)
\(5+4+3+2+2+3+2=21\) И будет ответом на вопрос задачи.
Ниже на трёх языках программирования записан рекурсивный алгоритм 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\; -\; 1) & \quad \{ & \quad\quad\quad begin \\ \quad\quad print(n) & \quad\quad cout\; <<\; n; & \quad\quad\quad \; \; writeln(n); \\ & \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(2)\):
\(
F(2)\rightarrow 2 F(1) 2 = 22\\
F(3)\rightarrow 3 F(2) 3= 3223\\
F(4)\rightarrow 4 F(3) 4= 432234\\
F(5)\rightarrow 5 F(4) 5 =54322345\\
\)
\(5+4+3+2+2+3+4+5=28\) И будет ответом на вопрос задачи.
Ниже на трёх языках программирования записан рекурсивный алгоритм 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\; -\; 2) & \quad \{ & \quad\quad\quad begin \\ \quad\quad print(n) & \quad\quad cout\; <<\; n; & \quad\quad\quad \; \; writeln(n); \\ & \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(0)\) и \(F(1)\) программа ничего не выведет. Пропишем весь алгоритм, начиная с \(F(2)\):
\(
F(2)\rightarrow 2 F(0) 2 = 22\\
F(3)\rightarrow 3 F(1) 3= 33\\
F(4)\rightarrow 4 F(2) 4= 4224\\
F(5)\rightarrow 5 F(3) 5 =5335\\
F(6)\rightarrow 6 F(4) 6 =642246\\
\)
\(642246\) И будет ответом на вопрос задачи.
Ниже на трёх языках программирования записан рекурсивный алгоритм F. \[\begin{array}{ | l | l | l |} \hline Python & C++ & Pascal \\ \hline def\; F(n): & void\; F(int\; n) & procedure\; F(n:\; integer); \\ \; \; \; print(n) & \{ & \quad begin \\ \quad if\; n\; >\; 0: & \; \; \; cout\; <<\; n; & \quad \; \; \; writeln(n); \\ \quad\quad print(n) & \quad if\; (n\; >\; 0) & \quad\quad if\; n\; >\; 0\; then \\ \quad\quad F(n\; -\; 1) & \quad \{ & \quad\quad\quad begin \\ \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(0)\) программа выведет 0. Пропишем весь алгоритм, начиная с \(F(1)\):
\(
F(1)\rightarrow 11F(0) = 110\\
F(2)\rightarrow 22 F(1)= 22110\\
F(3)\rightarrow 33F(2) = 3322110\\
F(4)\rightarrow 44 F(3) =443322110\\
F(5)\rightarrow 55 F(4) =55443322110\\
\)
Всего программа вывела \(11\) знаков.Это - ответ на вопрос задачи.