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--;
  }
}