C ++ rekurze (s příkladem)

V tomto tutoriálu se naučíme rekurzivní funkci v C ++ a její práci pomocí příkladů.

Funkce, která se sama nazývá, se nazývá rekurzivní funkce. A tato technika je známá jako rekurze.

Práce s rekurzí v C ++

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

Obrázek níže ukazuje, jak rekurze funguje opakovaným voláním.

Jak rekurze funguje v programování v C ++

Rekurze pokračuje, dokud není splněna nějaká podmínka.

Aby se zabránilo nekonečné rekurzi, lze použít příkaz … else (nebo podobný přístup), kde jedna větev provádí rekurzivní volání a druhá nikoli.

Příklad 1: Faktoriál čísla pomocí rekurze

 // 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; ) )

Výstup

 Zadejte nezáporné číslo: 4 Faktoriál 4 = 24

Práce faktoriálního programu

Jak funguje tento rekurzivní program C ++

Jak vidíme, factorial()funkce se sama volá. Během každého hovoru jsme však snížili hodnotu n o 1. Když n je menší než 1, factorial()funkce nakonec vrátí výstup.

Výhody a nevýhody rekurze

Níže jsou klady a zápory používání rekurze v C ++.

Výhody rekurze C ++

  • Díky tomu je náš kód kratší a čistší.
  • Rekurze je vyžadována u problémů týkajících se datových struktur a pokročilých algoritmů, jako je Graph a Tree Traversal.

Nevýhody rekurze C ++

  • Ve srovnání s iterativním programem to vyžaduje spoustu místa v zásobníku.
  • Využívá více času procesoru.
  • Může být obtížnější ladit ve srovnání s ekvivalentním iterativním programem.

Zajímavé články...