Programeri.com

Programeski Web Blog

Rekurzivne Funkcije

Septembar2

Na par mjesta sam vidio link do ovog tutorial, medjutim posto sam promjenio stranicu dobijete praznu stranicu. Pa evo tutorial ponovo:

Rekurzivna funkcija je funkcija koja poziva samu sebe da obnovi operaciju. Paznja: Svaka rekurzivna funkcija treba da ima exit ili return da bi izbjegli beskonacnu petlju. Evo vrlo jednostavan primjer.

function factorial($broj) {

    if ($broj < 2) {
        return 1;
    } else {
        return ($broj * factorial($broj-1));
    }
}

echo factorial(6);

Znaci evo i objasnjenje:

Prvi put funkcija je pozvana i variabla $broj je 6 znaci:
$broj = 6
Ako je $broj manji od 2 vrati true (1) exit. Ako nije vrati
6 * factorial(5) … zasto 5 $broj - 1 = 6 - 1 = 5

Znaci sada to ponovimo sa 5

6 * (5 * factorial(4))

Ponovimo sa 4

6 * (5 * (4 * factorial(3)))

Ponovimo sa 3

6 * (5 * (4 * (3 * factorial(2))))

Ponovimo sa 2

6 * (5 * (4 * (3 * (2 * factorial(1)))))

Medjutim 1 je manji od dva, i funkcija ce vratiti true. Sta smo dobili

6 * 5 * 4 * 3 * 2 = 720

6! = 720

Lagano zar ne :)

posted under Ostalo

Morate biti upisani da bit postavili komentar.

 

 Posljednje Mon, 13:38

mario: mozes li reci sta vraca ova rekurzivna funkcija iz c jezika long pot(long x, long y) { return x * pot(x, y - 1);

Miljand83: http://sr.boljiposao.com/sr/posao-23724/net-programer-m-z.aspx

admin: josip pita: ako mi netko moze pomoći dovrsiti software architecture document za class dijagram neka mi se javi na mail…platit cu!

svjetlana: ja bih da pitam nesto….ali ne mogu da nadjem pravi prostor za to…. Trazim nekoga ko bi mi uradio u asp ili asp.net portal za agenciju nekretninama….ako je neko zainteresovan enka mi se javi na mail svjetlanap@gmail.com thanks

» Postavi Pitanje