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.

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 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.