1  // Application using a recursively defined method
  2  
  3  public class Factorial
  4  {
  5     static final long MAX = 10;
  6  
  7     public static void main (String[] args)
  8     {
  9        for ( long i = 0; i <= MAX; i++)
 10          System.out.println(i + "! = " + factorial(i));
 11     }
 12  
 13     static private long factorial(long number)
 14     {
 15        if (number <= 1) 
 16  	return 1;	//base case
 17        else
 18  	return number * factorial(number - 1);
 19     }
 20      
 21  }
 22