import java.math.BigInteger; public class Factorial_10_Recursive { public static final int MAX = 30; /* Return the factorial of n */ public static BigInteger factorial(int n) { if (n < 0) throw new IllegalArgumentException(); if (n == 0) return BigInteger.ONE; return new BigInteger(n+ "").multiply(factorial(n-1)); } public static void main(String[] args) { for (int i=0; i <= MAX; i++) System.out.println(i + "! = " + factorial(i) ); } }