斐波那契数列由0和1开始,之后的斐波那契数就是由之前的两数相加而得出。比如说在斐波拉契数列当中第一个数为0,第二个数为1,因此第三个数为前面两个数之和,因此第三个数为1,同理第四个数是第二个数和第三个数之和,因此第四个数为2,下面就是斐波拉契数的变化:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, …
给出第n位,问第n位值为几?
只考虑当前状态怎么来的(当前状态是前两个状态之和而来的):f(n) = f(n-1) + f(n-2);
// 给出第n位,问第n位值为几
// fn(n) = fn(n-1) +fn(n-2)
function feibo(n) {
if (n <= 0) return -1;
if (n === 1) return 0;
if (n === 2) return 1;
if (n >= 3) {
return feibo(n - 1) + feibo(n - 2);
}
}
console.log(feibo(7)); // 8
console.log(feibo(8)); // 13
console.log(feibo(9)); // 21
console.log(feibo(10)); // 34