C Rekurzió (rekurzív funkció)

Tartalomjegyzék

Ebben az oktatóanyagban megismerheted a rekurzív függvények írását C programozással egy példa segítségével.

Az önmagát hívó függvény rekurzív függvényként ismert. Ezt a technikát rekurziónak nevezik.

Hogyan működik a rekurzió?

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

A rekurzió addig folytatódik, amíg valamilyen feltétel nem teljesül annak megakadályozására.

A végtelen rekurzió megelőzésére, ha… más utasítás (vagy hasonló megközelítés) használható, ahol az egyik ág rekurzív hívást kezdeményez, a másik pedig nem.

Példa: Természetes számok összege rekurzióval

 #include int sum(int n); int main() ( int number, result; printf("Enter a positive integer: "); scanf("%d", &number); result = sum(number); printf("sum = %d", result); return 0; ) int sum(int n) ( if (n != 0) // sum() function calls itself return n + sum(n-1); else return n; ) 

Kimenet

 Adjon meg egy pozitív egész számot: 3 összeg = 6

Kezdetben az argumentumként átadott szám függvényből sum()hívják meg main().

Tegyük fel, hogy n értéke n belül sum()kezdetben 3. A következő funkcióhívás során 2 átkerül a sum()funkcióhoz. Ez a folyamat addig folytatódik, amíg n nem egyenlő 0-val.

Ha n egyenlő 0-val, a iffeltétel meghiúsul, és a elserész végrehajtásra kerül, így az egész számok összegét végül a main()függvénynek adja vissza.

A rekurzió előnyei és hátrányai

A rekurzió elegánssá teszi a programot. Ha azonban a teljesítmény létfontosságú, használjon inkább ciklusokat, mivel a rekurzió általában sokkal lassabb.

Ennek ellenére a rekurzió fontos fogalom. Gyakran használják az adatszerkezetben és az algoritmusokban. Például a rekurziót gyakran használják olyan problémáknál, mint a fák bejárása.

érdekes cikkek...