Katero izmed formul bi najlažje implementirali z rekurzivno funkcijo (predvidevamo da znamo pisati rekurzivne funkcije).
Katero izmed formul bi najlažje implementirali z rekurzivno funkcijo (predvidevamo da znamo pisati rekurzivne funkcije).
Vemo da spodnja funkcija ni rekurzivna.
void supz (float izhod)
{
if (izhod < 1.2)
return 3.2;
if (izhod<2.5)
return drugaF(izhod) - 2.1;
else
return drugaF(izhod - 2.8);
}
Ali lahko ugotovite zakaj?
Ali je spodnja definicija rekurzivna?
"Za razumevanje rekurzije je potrebno najprej razumeti rekurzijo"
Imamo funkcijo:
int fac ( int n ) {
if ( n == 1 )
return 1;
return n * fac ( n - 1 );
}
Kako jo moramo poklicati, če želimo da vrne 1?
Imamo funkcijo:
int fac ( int n ) {
if ( n == 1 )
return 1;
return n * fac ( n - 1 );
}
Kaj se zgodi če je vhodni podatek n=3 (fac(3))?
Imamo funkcijo:
int fac ( int n ) {
if ( n == 1 )
return 1;
return n * fac ( n - 1 );
}
Kaj se zgodi če je vhodni podatek n=-1 (fac(-1))?
Dopolnite funkcijo, da bo rekurzivna (namig: funkcija vrača fibonačijevo število za pozitivna števila)?
int fib ( int n ) {
if ( n < 2 ) return n;
else return ( n - 1 ) + ( n - 2 ) ;
}
Dopolnite funkcijo, da bo rekurzivna (namig: funkcija vrača fibonačijevo število za pozitivna števila)?
int fib ( int n ) {
if ( n < 2 ) return n;
else return ( n - 1 ) + ( n - 2 ) ;
}
Dopolni!
Pri repni rekurziji se vse računske operacije izvedejo se izvede rekuzivni klic funkcije.
Dopolni!
Pri repni rekurziji se vse računske operacije izvedejo se izvede rekuzivni klic funkcije.