Факториал через рекурсию в Java — пример программы с методом

Факториал положительного числа n определяется так:

factorial of n (n!) = 1 * 2 * 3 * 4 * ... * n

Примечание

Факториал отрицательного числа не существует. Факториал 0 равен 1.

Пример: факториал через рекурсию

public class Factorial {

    public static void main(String[] args) {
        int num = 6;
        long factorial = multiplyNumbers(num);
        System.out.println("Factorial of " + num + " = " + factorial);
    }
    public static long multiplyNumbers(int num)
    {
        if (num >= 1)
            return num * multiplyNumbers(num - 1);
        else
            return 1;
    }
}

Вывод:

Factorial of 6 = 720

Сначала из main() вызывается multiplyNumbers() с аргументом 6.

Поскольку 6 ≥ 1, 6 умножается на результат multiplyNumbers(5) (то есть num - 1). Это рекурсивный вызов — функция вызывает саму себя.

На каждом рекурсивном вызове аргумент num уменьшается на 1, пока не станет меньше 1.

Когда num меньше 1, рекурсивных вызовов больше нет. Каждый возврат даёт:

6 * 5 * 4 * 3 * 2 * 1 * 1 (для 0) = 720