home *** CD-ROM | disk | FTP | other *** search
/ Sams Teach Yourself C in 21 Days (6th Edition) / STYC216E.ISO / mac / Examples / Day05 / recurse.c < prev    next >
C/C++ Source or Header  |  2002-04-14  |  652b  |  38 lines

  1. /* Demonstrates function recursion. Calculates the */
  2. /* factorial of a number. */
  3.  
  4. #include <stdio.h>
  5.  
  6. unsigned int f, x;
  7. unsigned int factorial(unsigned int a);
  8.  
  9. int main( void )
  10. {
  11.     puts("Enter an integer value between 1 and 8: ");
  12.     scanf("%d", &x);
  13.  
  14.     if( x > 8 || x < 1)
  15.     {
  16.         printf("Only values from 1 to 8 are acceptable!");
  17.     }
  18.     else
  19.     {
  20.         f = factorial(x);
  21.         printf("%u factorial equals %u\n", x, f);
  22.     }
  23.  
  24.     return 0;
  25. }
  26.  
  27. unsigned int factorial(unsigned int a)
  28. {
  29.     if (a == 1)
  30.         return 1;
  31.     else
  32.     {
  33.         a *= factorial(a-1);
  34.         return a;
  35.     }
  36. }
  37.  
  38.