Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как работает рекурсия?

Мил Человек Ученик (53), закрыт 4 года назад
Вот я написал функцию факториала, используя рекурсию, окей, вычисляем факториал числа 5 - все верно, 120. Но меня насторожило то, что факториал считается в обратном порядке, нежели прописано в программе. Вывело результат 2, 6, 24, 120. Но в функции ведь прописано, что n * func(n-1). Следовательно, я ожидал, что сначала 5 умножится на 4 = 20 * 3 = 60 * 2 = 120. Так как работает эта рекурсия? Ничего не понял.
Лучший ответ
Григорий Каринов Мастер (2396) 4 года назад
Если только изучаешь программирование, то изучение темы рекурсии будет сложной на первых порах, и слишком углубляться пока в неё не стоит, главное иметь общее представление о рекурсии. Если хочешь более детально узнать как работает рекурсия можешь почитать этот урок https://learn.javascript.ru/recursion конечно объяснения даются на JavaScript но рекурсия не привязана к конкретному языку программирования, они присутствуют во всех языках программирования. Рекурсивные алгоритмы используют только там где без них невозможно, а там где без низ можно обходиться, используют циклы.
Остальные ответы
Рене Декарт Гуру (3683) 4 года назад
Все правильно. У тебя до принта исполнение дойдет первый раз только в последнем вызове функции. А до этого будет проваливаться все дальше и двльше...
Алексей ХвостовскийМудрец (18112) 4 года назад
if (n > 0 && n > 1) ...
Дед Мазай Гений (58109) 4 года назад
Хорошая лекция про рекурсию https://youtu.be/0Bc8zLURY-c Там используется язык Python, но это неважно. Примеры будут понятны и без знания Python.
Похожие вопросы