// This method computes x!
if (x < 0) // Check for bad input
return 0.0; // If bad, return 0
double fact = 1.0; // Begin with an initial value
while(x > 1) { // Loop until x equals 1
fact = fact * x; // Multiply by x each time
x = x - 1; // And then decrement x
} // Jump back to start of loop
return fact; // Return the result