Ниже на пяти языках программирования записан рекурсивный алгоритм F.
| Бейсик | Python |
|---|---|
SUB F(n) PRINT n IF n < 5 THEN F(n + 1) F(n + 2) END IF END SUB | def F(n): print(n) if n < 5: F(n + 1) F(n + 2) |
| Алгоритмический язык | Паскаль |
алг F(цел n) нач вывод n, нс если n < 5 то F(n + 1) F(n + 2) все кон | procedure F(n: integer); begin writeln(n); if n < 5 then begin F(n + 1); F(n + 2) end end |
| Си | |
void F(int n) { cout << n; if (n < 5) { F(n + 1); F(n + 2); } } | |
Чему равна сумма всех чисел, напечатанных на экране при выполнении вызова F(2)?
Промоделируем работу алгоритма:
F(2)
F(3)
F(4)
F(5)
F(6)
F(5)
F(4)
F(5)
F(6)
Сложим все числа, получим 40.

