Hvis i vil sammenligne rekursion og løkker er det vel rimelig relevant, at i faktisk foretager det samme.
Løkken starter ved fib 3 til fib n. Mens rekursionen starter ved fib n til fib 1.
Så hvis i vil sammenligne burde i starte rekursionen ved fib 3 og rekursere op ad. (Burde være muligt.)
noget i retning af dette (javascript udgaven):
function _fib(a, b, n){
if(n<2) return a;
return _fib(a + b, a, n-1);
}
function fib(n){
if(n<1) return 0;
return _fib(1, 0, n);
}
alert(fib(1));
Har du iøvrigt prøvet at teste din løkke med:
fibonacci(1)
fibonacci(2)
Tror ikke det vil give dig 1, men derimod 0.