// 题目: 有一对兔子, 从出生后第3个月起每个月都生一对兔子, 小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(斐波拉契数列)
// 1 1 2 3 5 8 13 21....
// 规律是从第三个月开始 每个月的兔子对数是前面两个月相加之和
// 1.递归的方法
function fn(n) {
if (n <= 2) {
return 1
} else {
return fn(n - 1) + fn(n - 2)
}
}
console.log(fn(6)) //8
// 2.不用递归
function fn(n) {
var fn1 = 1, fn2 = 1, fn3 = 0
if (n <= 2) {
return 1
}
for (var i = 3; i <= n; i++) {
fn3 = fn1 + fn2
fn1 = fn2
fn2 = fn3
}
return fn3
}
console.log(fn(6)) //8
03-23
7114
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
01-05
724
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)