Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Освоение рекурсии в C++: концепции, примеры и лучшие практики

Рекурсия в C++: полное руководство

В этом уроке мы изучим рекурсивные функции в C++, поймем, как они работают, и рассмотрим практические примеры.

Функция, вызывающая саму себя, называется рекурсивной. Этот мощный метод известен как рекурсия.


Как работает рекурсия в C++

void recurse()
{
    // код до рекурсии
    recurse(); // рекурсивный вызов
    // код после рекурсии
}

int main()
{
    // код настройки
    recurse();
    // код завершения
}

На рисунке ниже показана повторяющаяся природа самовызова рекурсии.

Освоение рекурсии в C++: концепции, примеры и лучшие практики

Рекурсия продолжается до выполнения базового условия.

Для избежания бесконечной рекурсии условная охрана (например, if…else) гарантирует, что только одна ветвь выполняет рекурсивный вызов.


Пример 1: вычисление факториала рекурсивно

// Вычисляет n! = 1 × 2 × … × n
#include <iostream>
using namespace std;

int factorial(int);

int main()
{
    int n, result;
    cout << "Enter a non-negative number: ";
    cin >> n;
    result = factorial(n);
    cout << "Factorial of " << n << " = " << result;
    return 0;
}

int factorial(int n)
{
    if (n > 1)
        return n * factorial(n - 1);
    else
        return 1;
}

Результат

Enter a non-negative number: 4
Factorial of 4 = 24

Как работает программа факториала

Освоение рекурсии в C++: концепции, примеры и лучшие практики

Функция factorial() многократно вызывает саму себя, каждый раз уменьшая n на единицу. Когда n становится меньше или равно 1, функция возвращает 1, и рекурсия разворачивается, выдавая окончательный результат.


Преимущества и недостатки рекурсии в C++

Ниже приведены ключевые преимущества и недостатки рекурсии.


Преимущества


Недостатки


Понимая, когда и как использовать рекурсию, вы сможете писать более чистый, поддерживаемый C++ код, избегая распространенных подводных камней.

Язык C

  1. Освоение операторов C++: полное руководство с практическими примерами
  2. Комментарии в C++: лучшие практики для читаемого и поддерживаемого кода
  3. Рекурсия в C: основы, примеры и условия выхода
  4. Язык программирования C++: обзор и ключевые особенности
  5. Константы и литералы в C++: типы, синтаксис и лучшие практики
  6. Полное руководство по операторам C++: типы, использование и лучшие практики
  7. Работа с числовыми типами в C++: практическое руководство
  8. Ссылки в C++: ключевые концепции и отличия от указателей
  9. Шаблоны в C++: руководство по обобщённому программированию
  10. Препроцессор C++: как директивы формируют ваш код