Rekursja C ++ (z przykładem)

W tym samouczku nauczymy się funkcji rekurencyjnej w C ++ i jej pracy na przykładach.

Funkcja, która wywołuje samą siebie, jest znana jako funkcja rekurencyjna. Ta technika jest znana jako rekurencja.

Działanie rekursji w C ++

 void recurse() (… recurse();… ) int main() (… recurse();… )

Poniższy rysunek pokazuje, jak działa rekurencja, wywołując siebie w kółko.

Jak działa rekurencja w programowaniu w C ++

Rekurencja trwa do momentu spełnienia pewnego warunku.

Aby zapobiec nieskończonej rekurencji, można użyć instrukcji if… else (lub podobnego podejścia), gdy jedna gałąź wykonuje wywołanie rekurencyjne, a druga nie.

Przykład 1: Silnia liczby przy użyciu rekursji

 // Factorial of n = 1*2*3*… *n #include using namespace std; int factorial(int); int main() ( int n, result; cout <> n; result = factorial(n); cout << "Factorial of " << n << " = " < 1) ( return n * factorial(n - 1); ) else ( return 1; ) )

Wynik

 Podaj liczbę nieujemną: 4 Silnia 4 = 24

Działanie programu czynnikowego

Jak działa ten program rekurencyjny w C ++

Jak widać, factorial()funkcja wywołuje samą siebie. Jednak podczas każdego połączenia zmniejszyliśmy wartość n o 1. Gdy n jest mniejsze niż 1, factorial()funkcja ostatecznie zwraca wynik.

Zalety i wady rekursji

Poniżej znajdują się zalety i wady korzystania z rekurencji w C ++.

Zalety rekurencji w C ++

  • To sprawia, że ​​nasz kod jest krótszy i bardziej przejrzysty.
  • Rekurencja jest wymagana w problemach dotyczących struktur danych i zaawansowanych algorytmów, takich jak Graph i Tree Traversal.

Wady rekursji C ++

  • Zajmuje dużo miejsca na stosie w porównaniu z programem iteracyjnym.
  • Zużywa więcej czasu procesora.
  • Debugowanie może być trudniejsze w porównaniu z równoważnym programem iteracyjnym.

Interesujące artykuły...