Задать вопрос

Как работает рекурсивный метод?

Объясните пожалуйста подробно по шагам, что происходит на каждом шаге этого кода

Два часа уже бьюсь, никак не могу понять принципа, понятно только, что происходит до значения = 1, а куда оно return'ится и что дальше происходит - "темный лес".

class Factorial {

    int fact(int n) {
        int result;
        if (n == 1) {
            return 1;
        }
        result = fact(n - 1) * n;
        return result;
    }
}
class Recursion {

    public static void main(String args[]) {
        Factorial f = new Factorial();

        System.out.println("Факториал 3 равен " + f.fact(3));
    }
}
  • Вопрос задан
  • 8131 просмотр
Подписаться 4 Оценить Комментировать
Ответ пользователя swinntus К ответам на вопрос (4)
@swinntus
По сути, этот метод зациклан до того момента, пока n не будет = 1, после чего он начинает выполнять умножение вначале на 2, потом на 3 и т.д. пока значение не будет = n, после чего метод возвращает полученное произведение
Ответ написан
Комментировать