Факториал через рекурсию в 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