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
Не нашли ответ?
Ответить на вопрос
Похожие вопросы