Recursion Example

Here we are going to walk through an example of recursion using the factorial function. The Factorial of a number is the product of the series that starts with the number and decreases by one each time. In math notation that is

1! = 1
n! = n * (n-1)!
So 3! is 3 * 2 * 1 = 6.

An efficient way to calculate this on the computer is

int
fact(int n)
{
	int f = 1;
	while(n > 1)
		f = f * n--;
	return fl;
} // fact

while this is fast, it doesn't look like the definition of the problem. The problem is defined in terms of itself since n! = n * (n-1)!. Since the definition is recursive, it makes the code easier to follow if it is recursive as well. Like this:

int
factr(int n)
{
	if(n == 1) return 1;
	int r = factr(n-1);
	int x = n * r;
	return x;
} // factr

Let's walk through the execution of this bit of code. Remember that each time a function is called a new set of local variables and parameters is created.