Использование рекурсивных вызовов в программах на языке Си. Лясин Д.Н - 5 стр.

UptoLike

Составители: 

5
{ unsigned int f;
f=(n<=1)?1:n*fact(n-1);
return f;
}
Функцию можно вызвать для получения значения факториала целого
числа:
int main()
{
cout<<fact(5);
}
Рассмотрим, как рекурсивные будут последовательно возникать
рекурсивные вызовы функций для обращения fact(5):
Из рисунка видно, что глубина рекурсии равна 5. Условие
окончания рекурсивного вызова сформулировано как n<=1, поскольку
вычисление факториала чисел 0 и 1 является тривиальным. В терминах
рекурсии вычисление 0! и 1! является базой, относительно которой
формулируется и вычисляется факториал любого другого натурального
числа. Рекурсивным шагом здесь будет вычисление факториала числа, на
1 меньше аргумента функции.
Рассмотрим примеры рекурсий в различных отраслях знания.
Для математики уже рассмотрено рекурсивное определение
факториала. Также рекурсивно определение чисел Фибоначчи:
N=4
N=3
N=2
N=1
f=1
1
2
6
24
120
fact(4)
fact(3)
fact(2)
fact(1)
fact(5)
f=2*
fact(1)
f=3*
fact(2)
f=4*
fact(3)
N=4
f=4*
)
рекурсивные вызовы функции fact
Возвращаемы
е
значения
Рисунок 1. Последовательные вызовы функции fact для вычисления 5!
     {    unsigned int f;
          f=(n<=1)?1:n*fact(n-1);
          return f;
     }
     Функцию можно вызвать для получения значения факториала целого
числа:
     int main()
     {
          …
          cout<