Факториал в Java

Данный код считает факториал числа n. Почему, чтобы посчитать факториал числа n, нужно n*calcFactorial(n-1)? Почему в Java нельзя просто calcFactorial(n)?

public long calcFactorial(int n) {
    if (n == 0) return 1;
    return n * calcFactorial(n - 1);
}

Ответы (1 шт):

Автор решения: Sergei Buvaka

Это рекурсия. Всякий раз когда функция приходит в блок return она вызывает саму себя, но уже с аргментом n-1. И Так до тех пор пока n не будет раввен 0. n == 0 это крайний случай, тогда функция возвращает 1 и суммирует предыдущие результаты.

Вам стоит больше почитать о том как работает рекурсия. Возможно стоит так же почитать о том, что такое факториал если вы задаете такой вопрос.

→ Ссылка