Procedure F(n: integer): integer; begin if n больше 1 then F := F(n-1)*(n+1) else F := 1; end; Чему будет равно значение, вычисленное алгоритмом при выполнении вызова F(5)? как решать?
Procedure F(n: integer):
integer;
begin
if n > 1 then
F := F(n-1)*(n+1)
else
F := 1;
end;
Чему будет равно значение, вычисленное алгоритмом при выполнении вызова
F(5)?
как решать?
Ответ(ы) на вопрос:
Гость
Рекурсия будет выполняться до тех пор, пока 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
Не нашли ответ?
Похожие вопросы