function fb(n) {
if (n === 1 || n === 2) {
return 1;
}
var n1 = 1;
var n2 = 1;
var result = 0;
for (let i = 3; i <= n; i++) {
result = n1 + n2;
n1 = n2;
n2 = result
}
return result;
}
console.log(fb(5)
这两个是什么意思?
n1 = n2;
n2 = result
(1 1 2 3 5 8 13 21)
是为了求下次的结果做准备, 当是3的话,循环1次
2=1+1
n1=1
n2=2
当是4的话,循环2次
3=1+2(n1+n2)
n1=2
n2=3
当是5的话,循环3次
5=2+3
n1=3
n2=5
所以用for循环做的话能一眼看出结果,如果再求6项对应的数字就是8,再求7就是13,每一次变化重点的是n1+n2,到了输出结果重点才是result,没求到结果前result都不是重点。