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

