C Rekursioon (rekursiivne funktsioon)

Lang L: none (table-of-contents)

Selles õpetuses õpite näite abil kirjutama rekursiivseid funktsioone C-programmeerimises.

Funktsioon, mis ennast kutsub, on tuntud kui rekursiivne funktsioon. Ja seda tehnikat tuntakse rekursioonina.

Kuidas rekursioon töötab?

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

Rekursioon jätkub seni, kuni selle vältimiseks on täidetud mõni tingimus.

Lõputu rekursiooni vältimiseks saab kasutada… lauset (või muud sarnast lähenemist), kus üks haru teeb rekursiivse kõne ja teine ​​mitte.

Näide: looduslike arvude summa rekursiooni abil

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

Väljund

 Sisestage positiivne täisarv: 3 summa = 6

Esialgu sum()kutsutakse main()funktsioon funktsioonilt, mille arv on argumendina edastatud.

Oletame, et n sees sum()on algselt 3 väärtus . Järgmise funktsioonikõne ajal edastatakse funktsioonile 2 sum(). See protsess kestab seni, kuni n on võrdne 0-ga.

Kui n on 0, võrdub iftingimus ja elseosa täidetakse, tagastades täisarvude summa lõpuks main()funktsioonile.

Rekursiooni eelised ja puudused

Rekursioon muudab programmi elegantseks. Kui jõudlus on aga ülioluline, kasutage selle asemel tsükleid, kuna rekursioon on tavaliselt palju aeglasem.

Nagu öeldud, on rekursioon oluline mõiste. Seda kasutatakse sageli andmestruktuuris ja algoritmides. Näiteks on tavaline, et rekursiooni kasutatakse sellistes probleemides nagu puude läbimine.

Huvitavad Artiklid...