package gigasblade;
// If you have any comments and/or suggestions, please let me know!
public class Factorial {
private static long factorial(long n) {
if (n < 0)
throw new IllegalArgumentException();
if (n == 0) {
return 1;
}
long factorial = 1;
for (int i = 2; i <= n ; i++) {
factorial *= i;
}
return factorial;
}
private static void checkFactorial(long n) {
try {
System.out.println("factorial(" + n + "): " + factorial(n));
} catch (IllegalArgumentException e) {
System.out.println("factorial(" + n + "): " + e);
}
}
public static void main(String[] args) {
for (int n = -5 ; n <= 18; n++) {
checkFactorial(n);
}
}
}
factorial(-5): java.lang.IllegalArgumentException
factorial(-4): java.lang.IllegalArgumentException
factorial(-3): java.lang.IllegalArgumentException
factorial(-2): java.lang.IllegalArgumentException
factorial(-1): java.lang.IllegalArgumentException
factorial(0): 1
factorial(1): 1
factorial(2): 2
factorial(3): 6
factorial(4): 24
factorial(5): 120
factorial(6): 720
factorial(7): 5040
factorial(8): 40320
factorial(9): 362880
factorial(10): 3628800
factorial(11): 39916800
factorial(12): 479001600
factorial(13): 6227020800
factorial(14): 87178291200
factorial(15): 1307674368000
factorial(16): 20922789888000
factorial(17): 355687428096000
factorial(18): 6402373705728000
Comments
Post a Comment