/* Factorial computes n! recursively.

   Receive:   n, an integer
   Return:    n! (or -1 in case of error -- n is negative)
-------------------------------------------------------------------*/

int Factorial(int n)
{
   if (n == 0)
      return 1;                    // trivial case
   else if (n > 0)
      return n * Factorial(n-1);   // inductive step
   else
   {
      cerr << "n! is not defined for negative n.\n";
      return -1;
   }
}

	


