// factorial-tail-recursive.C
// Name:  Gary T. Leavens
// TA:    Bjarne Stroustrup
// Section:  A1

static double fact_it(unsigned int n, double f)
{
  if (n == 0) {
     return f;
  } else {
     return fact_it(n-1, n * f);
  }
}

double fact(unsigned int n) {
  return fact_it(n, 1.0);
}
