[ star-Mo @ 06.10.2003. 12:23 ] @
Pozdrav svima

Imam pitanje u svezi kreiranja strategije za uzlaznu rekurziju :

Naime, u sljedecem primjeru za racunjanje faktorijela se koristi silazna rekurzija ( barem tako pise u skripti koju imam ).

Strategija je :

int Faktorijel ( int n )
{
if ( postoji samo jedan broj u rasponu 1:n, n=1 )
( rjesenje je 1 ) /* osnovni slucaj*/
}else{
( rjesenje se dobije mnozenjem
proizvoda u rasponu 1:n-1 sa n ) /* rekurzivni korak */
}
}

Test primjer bi izgledao :

Faktorijel(6) = (6*Faktorije(5))
= (6*(5*Faktorijel(4)))
= .
= .
= .

Pitanje :

Kako treba izgledati strategija za
uzlaznu rekurziju ?

Mislim da se treba nesto "pretumbati" u dijelu :

( rjesenje se dobije mnozenjem
proizvoda u rasponu 1:n-1 sa n ) /* rekurzivni korak */
ali nisam siguran sto ?

please F1 F1 F1...
[ dusans @ 08.10.2003. 14:58 ] @
Resenje je n*Faktorijel(n-1)
[ noviKorisnik @ 09.10.2003. 10:10 ] @
Meni baš nije jasno šta ovde znače pojmovi silazne i uzlazne rekurzije. Ima li ko da razjasni?
[ filmil @ 09.10.2003. 10:14 ] @
Čovek želi da mu uslov za izlaz iz rekurzije ne bude dostizanje nule već dostizanje n.

f
[ srki @ 09.10.2003. 14:11 ] @
Napravis faktorijel(n,i)

if (i=n) return n
else return i*faktorijel(n,i+1);

Funkciju pozivas sa faktorijel(n,1);
[ noviKorisnik @ 09.10.2003. 14:22 ] @
Citat:
if (i=n) return n
else return i*faktorijel(n,i+1);
faktorijel (n, i) = n! / i!

i šta se dešava ako se pozove faktorijel (1, 2)? PUF!