МОЛЮ ПАСКАЛЬ Что будет выведено на экран в результате работы программы? Нарисуйте дерево рекурсивных вызовов.
program k;
uses crt;
function F(n: integer):
integer;
begin
if n < 5 then
F := F(n + 1) + F(n + 2) + F(n + 3)
else
F := n;
end;
begin
Writeln (F(2));
end.
насколько я поняла будет примерно так:
вызываем F(2)
Так как 2 < 5^, то
F(2) = F(3) + F(4) + F(5)
аналогично F(3) = F(4) + F(5) + F(6) и F(4) = F(5) + F(6) + F(7)
так как 5,6,7 не меньше 5, то F(5) = 5, F(6) = 6, F(7) = 7
Отсюда F(4) = 5 + 6 + 7 = 18, теперь зная F(4) вычислим F(3):
F(3) = 18 + 5 + 6 = 29
И наконец, зная F(3) найдем F(2):
F(2) = 29 + 18 + 5 = 52
ответ: 52