我是JavaScript的新手,因为某种原因,我的Fibonacci序列生成器。什么是Fibonacci序列,很简单,它是一个序列,它接受序列的最后两个数字,并添加它们来创建下一个数字。下面是一个例子。0,1,1,2,3,5,8,13,21我尝试使用while语句创建一个循环,在该循环中,变量曾经是第一个数字(在本例中为0),它将转换为一个新的数字,无论这个数字是什么,再加上第二个数字(在本例中是1)。例如: var firstNumber(它是0) + var secondNumber(它是1) = var firstNumber( no等于1,因为我们添加了0+ 1)。如果这在一个循环中进行,那么,理论上,它可以无限地把最后一个数和前面的一个数相加,然后使第二个数到最后一个数得到加法的结果。这是我的代码,它根本不起作用。任何帮助都将不胜感激。希望我已经正确地解释了我自己。
var firstNumber = 0;
var secondNumber = 1;
function fibonacciGenerator(n){
while (secondNumber <= n){
firstNumber + secondNumber == firstNumber;
secondNumber + firstNumber == secondNumber;
}
}
console.log(fibonacciGenerator(50));
发布于 2020-06-26 01:10:47
firstNumber + secondNumber == firstNumber; --这不是给变量赋值的方法
您需要在函数的末尾添加一个返回语句。
这个有用吗?
var firstNumber = 0;
var secondNumber = 1;
function fibonacciGenerator(n){
while (secondNumber <= n){
firstNumber = firstNumber + secondNumber;
secondNumber = secondNumber + firstNumber;
}
return secondNumber
}
console.log(fibonacciGenerator(50));
发布于 2020-06-26 01:27:20
您需要赋值第三个变量来存储第一个和第二个变量的和,在此之后,您应该使您的循环从2开始,而不是1,因为您已经在循环开始之前对它进行了放气,而当您将一个值从变量分配给另一个变量时,它从右到左工作,所以应该是这样的。
firstNumber = firstNumber + secondNumber;
secondNumber = secondNumber + firstNumber;所以编辑后会是这样的
function fibonacciGenerator(n) {
var a = 0,
b = 1,
c;
for (let i = 2; i <= n; i++) {
c = a + b;
a = b;
b = c;
}
return b;
}
console.log(fibonacciGenerator(9))
要阅读更多关于它的信息,请查看此链接
https://stackoverflow.com/questions/62586491
复制相似问题