Practical Coding in Java

Learn to write and validate your own code

Darren Kessner, PhD

(revised January 9, 2026)

Previous: 13. Recursion

Factorial

//
// Factorial.java
//


public class Factorial
{
    public static int factorial(int n)
    {
        if (n == 0)
            return 1;
        
        return n * factorial(n-1);
    }

    public static void main(String[] args)
    {
        System.out.println("Factorial");
        System.out.println("3! = " + factorial(3)); // 6
        System.out.println("4! = " + factorial(4)); // 24
        System.out.println("5! = " + factorial(5)); // 120
    }
}

Output:

Factorial
3! = 6
4! = 24
5! = 120

Next: