function F(n: Integer): Integer;
begin
if n=0 then reset:=1
else
if n=1 then reset:=1
else reset:=F(n-1)+F(n-2)
end;
Mohl by mi někdo vysvětlit, jak má vypadat rekurzivní volání této funkce pro hodnotu n=4.
děkuju
#1 Dane
Máš tam nějakou chybu.
Funkce by měla mít definovanou návratovou hodnotu, ta tvoje nemá. Ale asi ses jen spletl a místo reset tam má býr result.
A až si to tam opravíš, přidej si kontrolní výpis volání funkce a pro jakou je to hodnotu a to by ti mělo vypsat jak "vypadá ta rekurze"...
#1 Dane
Jenom tě chci upozornit, že Fibonacciho posloupnost je deffinována
1. F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2), to znamená od n=0 pro nějž je hodnota 0.
nebo
2. F(1)=1,F(2)=1,F(n)=F(n-1)+F(n-2),to znamená od n=1 pro nějž je hodnota 1 a pro n=2 je rovněž hodnota 1.
Tedy v tom tvém řádku if n=0 then result:=1 má být správně if n=0 then result:=0
Lepší je ovšem pracovat podle 2., protože jaksi nulté Fibonacciho číslo je trochu hůře představitelné.
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku