两种不同的方式实现斐波那契数列
1、for循环方式实现
function feibo(n) {
if (n == 0 || n == 1) {
return 1
}
let a = 0
let b = 1
let c = a + b
for (let i = 2; i <= n; i++) {
c = a + b
a = b
b = c
}
return c
}
2、用递归加map对象实现最优
var map = new Map()
function feibo(n) {
if (map.has(n)) {
return map.get(n)
}
if (n == 1 || n == 2) {
return 1
}
map.set(n, feibo(n - 1) + feibo(n - 2))
return feibo(n - 1) + feibo(n - 2)
}

浙公网安备 33010602011771号