/*************************************************************************
* Name:
* NetID:
* Precept:
*
* Description: Takes an integer command-line argument n,
* and prints n! = 1 * 2 * ... * n to standard output.
*
* Dependencies: None.
*
* Examples:
* % java Factorial 0
* 1
* % java Factorial 1
* 1
* % java Factorial 5
* 120
* % java Factorial 12
* 479001600
* % java Factorial 20
* 2432902008176640000
*
* Remarks:
* - Would overflow a long if n > 20
* - Need to use extended precision arithmetic to handle bigger factorials
*************************************************************************/
public class Factorial {
// recursive method to find factorial
// assumes n >= 0 and n <= 20
public static _______ factorial(_________________________) {
// base case
if (________________)
return _________;
// reduction step
return ______ * factorial(________);
}
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
StdOut.println(factorial(n));
}
}