为我定义斐波那契数列函数的含义 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 个数字。
希望对您有所帮助。
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 个数字。
希望对您有所帮助。