• Числа Фибоначчи в JS(рекурсия). Как работает функция?

    dadster
    @dadster
    учить инглиш тут - https://t.me/langhacks
    Оно развертывается дальше до конца (функция рекурсивно вызывает себя), пока не получится что-то вернуть. (т.е. пока не выполнится условие n <= 1, и будет возврат n.

    Для упрощения посмотрим f(5)

    f(5) = f(4) + f(3) -> развертываем дальше вызовы функций с новыми параметрами, получается:
    ( f(3) + f(2) ) + ( f(2) + f(1) ) -> здесь для f(1) уже появляется значение (1), Но для показательности развернем все до конца:
    ( ( f(2) + f(1) ) + ( ( f(1) + f(0) ) + ( ( f(1) + f(0) ) + f(1), здесь уже остается только 1 вызов, для f(2), все остальные возвращают конкретные цифры, f(1) = 1, f(0) = 0. f(2) = f(1) + f(0) = 1.
    Получается 1 + 1 + 1 + 0 + 1 + 0 + 1 = 5.

    Такую же развертку можно сделать и для f(10), все оно тоже сведется к множеству единиц, которые сложатся в 55.

    Надеюсь, вопрос состоял именно в этом, а не в механизме работы рекурсии в JS, если так, то тут я ничего не подскажу)
    Ответ написан
    Комментировать