为我定义斐波那契数列函数的含义 a=b 和 b=sum ,有人可以解释一下他们做了什么

Define the meaning in Fibonacci sequence function for me a=b and b=sum , can someone please explain what they do

function fib (n) {
  var output = [];
    var a=0;
    var b=1;
    for(var i=0; i<n; i++){
      if(i===0){
        output.push(i);
      } else if(i==1){
        output.push(1);
      } else{
        var sum=a+b;
        output.push(sum);
        a=b;
        b=sum;
      }
    }
    return output;
}

你能帮我定义一下 a=b b=sum 的作用以及它是如何工作的吗?真不懂,刚开始学习

在您的示例中,"a" 和 "b" 都是变量。它们在 for 循环的范围之外定义。出于这个原因,它们的值可以在 for 循环的生命周期中发生变化并持续存在。

var a = 0;
for (var i = 0; i < 5; i++) {
   a = a + 1;
}
console.log(a)

如果你 运行 这个,"a" 将在控制台日志中等于 5。

在您的示例中,该函数获取斐波那契数列中的第 n 个数字。 a 和 b 是需要在下一次迭代中结转的存储值。 "a" 表示迭代的最后一个值,而 b 表示未决总数。

如果你传入 6 例如:

第一次迭代:i 为 0,因此压入 0。

第二次迭代:i 是 1 所以压 1。

第三次迭代:sum 将被设置为 a (0) + b (1) 因此 1.a 将被设置为 1(我们最后已知的 b 值)然后 b 将被设置为 1(我们的新总和)

第四次迭代:sum 将设置为 a (1) + b (1),因此 2。然后 a 将(再次)设置为 1,b 将设置为 2。

第五次迭代:sum 将被设置为 a (1) + b (2) 所以 3。然后 a 将被设置为 2,b 将被设置为 3。

第六次迭代:sum 将设置为 a (2) + b (3) 所以 5。然后 a 将设置为 3,b 将设置为 5。

并且 for 循环将结束并且 return 输出,即:0, 1, 1, 2, 3, 5

这是斐波那契数列的前 6 个数字。

希望对您有所帮助。