МОЛЮ ПАСКАЛЬ Что будет выведено на экран в результате работы программы? Нарисуйте дерево рекурсивных вызовов.
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.

PicaChuShiK PicaChuShiK    2   23.12.2020 20:38    0

Ответы
anjelikakotiv anjelikakotiv  22.01.2021 20:39

насколько я поняла будет примерно так:

вызываем 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

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика