xxxxxxxxxx
def fibo2(n):
if n ==1 or n==0:
return 1
else :
n = n+fibo2(n-1)
return n
print(fibo2(n1))
xxxxxxxxxx
int fib (int n) {
if (n < 2)
return 1;
return fib(n-1) + fib(n-2);
}
xxxxxxxxxx
function fib(n) {
if (n === 1 || n === 0)
return n
return fib(n - 1) + fib(n - 2)
}
console.log('fib:', fib(9)) // [Log]: fib: 34
/*
Time complexity O(2^n)
Space complexity O(n)
Since fib(n-1) gets evaluated completely before fib(n-2),
there will never be more than n levels of recursion.
*/
xxxxxxxxxx
(define (fib n)
(cond
((= n 0) 0)
((= n 1) 1)
(else
(+ (fib (- n 1))
(fib (- n 2))))))
xxxxxxxxxx
(define (fib2 n)
(let loop
((m 0)
(k 1)
(count n))
(if (= count 0)
m
(loop k (+ m k) (- count 1)))))