RECURSION
This is where a function repeatedly calls itself to perform
calculations. Typical applications are games and Sorting trees
and lists.
Consider the calculation of 6! ( 6 factorial )
ie 6! = 6 * 5 * 4 * 3 * 2 * 1 6! = 6 * 5! 6! = 6 * ( 6 - 1 )! n! = n * ( n - 1 )!
/* bad example for demonstrating recursion */ #include <stdio.h> long int factorial( long int ); /* ANSI function prototype */ long int factorial( long int n ) { long int result; if( n == 0L ) result = 1L; else result = n * factorial( n - 1L ); return ( result ); } main() { int j; for( j = 0; j < 11; ++j ) printf("%2d! = %ld\n", factorial( (long) j) ); }
EXERCISE C19
Rewrite example c9 using a recursive
function.