Funcția, ce recursivitate

Recursivitatea a numit această construcție în care funcția se numește. Distinge între recursie directă și indirectă. Funcția se numește recursiv drept în cazul în care conține în corpul său în sine o provocare. Dacă o funcție solicită o altă funcție, care, la rândul său, determină în primul rând, o astfel de funcție este numit recursiv în mod indirect.

Luați în considerare exemplele clasice de recursivitate - punerea în aplicare a operațiunii și exponentiere de calcul factorial. Rețineți că aceste exemple sunt clasice doar din cauza comoditatea lor de a explica conceptul de recursivitate, dar ele nu beneficiază în punerea în aplicare a programului, în comparație cu metoda iterativă de rezolvare a acestor probleme.

Acest exemplu se bazează pe faptul că este echivalent cu x y x * x (y-1). Această sarcină de calcul cod este împărțit pe 2 de calcul 02 aprilie * 2³. Apoi 2 * 2³ este împărțit în 2 * 2² și, astfel, atâta timp cât rata este zero.

Versiunea iterativă a acestui exemplu este după cum urmează:

În plus, acest cod este mult mai ușor de înțeles, de asemenea, este mai eficient, deoarece treci ciclu costa „mai puțin“ funcția de apel.

Pentru o funcție de argument negativ returnează o valoare nulă, deoarece factorialul unui număr negativ nu există prin definiție. Pentru funcția de reglare la zero returnează o valoare de 1, deoarece 0! = 1. În alte cazuri, aceeași funcție este invocată cu o valoare redusă a parametrului este 1, atunci rezultatul este înmulțit cu o valoare a parametrului curent. . Adică, există calculul produsului:

Secvența de apeluri recursive întreruptă doar de un fapt apel (0). ceea ce duce la ultima valoare 1 în produs, deoarece acesta din urmă expresie din care este numită funcția, are forma 1 * fapt (1 - 1).

factorial iterativă poate fi calculată după cum urmează:

Dacă nu găsiți ceea ce căutați, recomand să utilizați bara de căutare: