f(n) = f(n-1) + f(n-2)
题目:当n小于2时函数返回n,大于等于2时返回前两个值的和,如下
n | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
f(n) | 0 | 1 | 1 | 2 | 3 | 5 | 8 | 13 | 21 |
方法1:递归
function f(n) {
if (n<2) {
return n;
}
return f(n-1) + f(n-2);
}
方法2:加法
function f(n) {
if (n<2) {
return n;
}
let a1 = 0;
let a2 = 1;
let a3 = a2 + a1;
for (var i = 2; i < n; i++) {
a1 = a2;
a2 = a3;
a3 = a2 + a1;
}
return a3;
}