TOPIC 18.1.1
Recursion Compared to
Loops
// loop form of factorial
long factorial(long n)
{
long fact;
fact = n--; //set fact equal to n, then sub 1 from n
while(n > 1) //while n still larger than 1
{
fact *= n--; //fact = fact * n, then sub 1 from n
}
}
// recursive form of power
float power(float number, int pow)
{
if(pow <= 1) //if pow <= 1, stop the recursive process
{
return number;
}
else //else pow > 1, and the power function is called with pow 1 less
{
return number * power(number, pow - 1);
}
}
// power implemented with loops
float power(float number, int pow)
{
float answer;
answer = number; //setup answer, now
pow --; //one power is taken care of
while(pow > 0) //continue multiplying until pow becomes 0
{
answer *= number;
pow--;
}
}