Пример. Рекурсия на СИ. Факториал. Рекурсивными называются процедуры и функции, которые вызывают сами себя. Функцию вычисления факториала можно записать так:


Обратите внимание, что функция Factorial вызывает сама себя, если n>0. Для решения этой задачи  можно  использовать   и   рекурсивную   процедуру      не   функцию).   Вспомним,   как рекурсивная  процедура  может  вернуть  значение-результат?  Через  параметр,  переданный  по ссылке (в объявлении процедуры у его имени стоит знак ссылки &). При рекурсивных вызовах процедура меняет это значение.


int Factorial ( int n )

{

if ( n <= 0 ) return 1;

else          return n*Factorial(n-1);

}

 

void Factorial ( int n, int &fact )

{

if ( n == 0 ) fact = 1;

else {

      Factorial ( n-1, fact );

   fact *= n;

   }

}


2009-12-19 • Просмотров [ 6421 ]