/*************************************************************************
* Name:
* NetID:
* Precept:
*
* Description: Factorial reads in a command-line argument N, and prints
* N! = 1 * 2 * ... * N to System 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]);
System.out.println(factorial(N));
}
}