Ответы пользователя по тегу Java
  • Как работает рекурсивный метод?

    @veontomo
    Значение возвращается тому, кто его запросил.
    Например, если запросить f.fact(1), то метод Factorial::fact сразу вернет 1.
    Для запроса f.fact(2) цепочка вызовов будет такой:
    сначала запрос Factorial::fact(2), который вернет Factorial::fact(1) * 2.
    В ответе есть снова запрос Factorial::fact(1), который возвращает 1. Таким образом, получаем 2*1, т.е. 2.

    По этой же схеме проходят и остальные примеры:
    f.fact(10) -> f.fact(9) * 10 -> f.fact(8) * 9 * 10 -> ... -> f.fact(1) * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10 = 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10.
    Ответ написан
    4 комментария