Факториал в 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 и суммирует предыдущие результаты.
Вам стоит больше почитать о том как работает рекурсия. Возможно стоит так же почитать о том, что такое факториал если вы задаете такой вопрос.