Procedure F(n: integer): integer; begin if n > 1 then F := F(n-1)*(n+1) else F := 1; end;...

0 голосов
104 просмотров

Procedure F(n: integer):
integer;
begin
if n > 1 then
F := F(n-1)*(n+1)
else
F := 1;
end;
Чему будет равно значение, вычисленное алгоритмом при выполнении вызова
F(5)?

как решать?


Информатика (31 баллов) | 104 просмотров
Дан 1 ответ
0 голосов

Рекурсия будет выполняться до тех пор, пока n больше 1. При каждом шаге число 5 будет уменьшаться на единицу, при этом умножая значение функции на себя + 1. Так, функция вызовет сама себя 4 раза, после чего умножит себя на 1.
6[n=5]*5[n=4]*4[n=3]*3[n=2]*1[n=1]=360
N+1         6  5   4   3  2
Шаг         1  2   3   4  5
N             5  4   3   2  1
Условие tr  tr  tr  tr   fal=>f*1

(1.7k баллов)
0

можно подробнее через таблицу или дерево расписать

0

Самая простая таблица, которую я могла написать.

0

тогда можно ее усложнить

0

спасибо