从缓存的角度思考优化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// 1 fib(100)
function fib(n) {
if (n <= 1) {
return 1
}
return fib(n-1) + fib(n-2)
}
// fib(100)

// 2 fib2(100000)
function fib2(n) {
if (n <= 1) {
return 1
}
if (fib2[n]) {
return fib2[n]
}
fib2[n] = fib2(n-1) + fib2(n-2)
return fib2[n]
}

// 3 fib3(1000000)
function fib3(n , f1 = 1 , f2 = 1) {
if( n <= 1 ) {
return f2
}
return fib3(n - 1, f2, f1 + f2)
}