C Tutorial/Function/Recursive Function

Материал из C\C++ эксперт
Версия от 10:32, 25 мая 2010; Admin (обсуждение | вклад) (1 версия: Импорт контента...)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Calculate factorials using recursion

#include <stdio.h>
unsigned long factorial(unsigned long);
int main(void)
{
  unsigned long number = 0L;
  printf("\nEnter an integer value: ");
  scanf(" %lu", &number);
  printf("\nThe factorial of %lu is %lu\n", number, factorial(number));
  return 0;
}
unsigned long factorial(unsigned long n)
{
  if(n < 2L)
    return n;
  else
    return n*factorial(n - 1L);
}

Recursion

  1. A recursive function is a function that calls itself.
  2. The speed of a recursive program is slower because of stack overheads.
  3. In recursive function we need to specify recursive conditions, terminating conditions, and recursive expressions.


#include <stdio.h>
int add(int k,int m);
main()
{
    int k ,i,m;
    m=2;
    k=3;
    i=add(k,m);
    printf("The value of addition is %d\n",i);
}
int add(int pk,int pm)
{
    if(pm==0)
       return(pk);
    else
       return(1+add(pk,pm-1));
}
The value of addition is 5

Recursive fibonacci function

#include <stdio.h>
long fibonacci( long n ); 
int main()
{
   long result; 
   long number; 
   printf( "Enter an integer: " );
   scanf( "%ld", &number );
   result = fibonacci( number );
   printf( "Fibonacci( %ld ) = %ld\n", number, result );
   
   return 0;
}
long fibonacci( long n )
{
   if ( n == 0 || n == 1 ) {
      return n;
   } 
   else { 
      return fibonacci( n - 1 ) + fibonacci( n - 2 );
   } 
   
}
Enter an integer: 3
Fibonacci( 3 ) = 2