«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Рекурсия

Рекурсия

Опубликовано 2 сентября 2024 г.
Просматривать:589

Recursão

Определение рекурсии:

  • Рекурсия — это метод, который вызывает сам себя.
  • Метод является рекурсивным, если он содержит вызов самого себя.

Классический пример:
Факториальный расчет — классический пример рекурсии.
Факториал числа? является произведением всех целых чисел от 1 до N

Пример кода:

  • Приведенный код демонстрирует рекурсивный метод (factR) и итерационный метод (factI) для вычисления факториала.
  • Оба метода возвращают одни и те же результаты, но используют разные подходы.

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

  • Рекурсивный метод (factR) вызывает сам себя до тех пор, пока не будет достигнуто значение
  • ? n равно 1.
  • При каждом рекурсивном вызове метод «складывается» и начинает возвращаться только тогда, когда достигается базовое условие.

Стек вызовов:

  • Каждый рекурсивный вызов выделяет место в стеке выполнения для новых параметров и переменных.
  • Рекурсивные вызовы могут привести к переполнению стека, что приведет к возникновению исключений.

Сравнение с итерацией:

  • Рекурсивные методы могут быть более понятными и простыми для определенных алгоритмов, например для быстрой сортировки.
  • Однако рекурсивные версии могут работать медленнее из-за накладных расходов на вызов методов.

Меры предосторожности при использовании рекурсии:

  • Очень важно иметь условие завершения, чтобы предотвратить вход метода в бесконечный цикл.
  • Операторы отладки, такие как println(), могут помочь вам понять поток рекурсивного выполнения.

Рекурсивный код для вычисления факториала
СМ. РЕКУРСИИ.JAVA

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/devsjavagirls/recursao-17o5?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить их.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3