首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基本JavaScript - Fibonacci序列发生器不工作

基本JavaScript - Fibonacci序列发生器不工作
EN

Stack Overflow用户
提问于 2020-06-26 01:07:18
回答 2查看 82关注 0票数 1

我是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)。如果这在一个循环中进行,那么,理论上,它可以无限地把最后一个数和前面的一个数相加,然后使第二个数到最后一个数得到加法的结果。这是我的代码,它根本不起作用。任何帮助都将不胜感激。希望我已经正确地解释了我自己。

代码语言:javascript
复制
var firstNumber = 0;
var secondNumber = 1;

function fibonacciGenerator(n){
    while (secondNumber <= n){
        firstNumber + secondNumber == firstNumber;
        secondNumber + firstNumber == secondNumber;
    }
}
console.log(fibonacciGenerator(50));

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-26 01:10:47

firstNumber + secondNumber == firstNumber; --这不是给变量赋值的方法

您需要在函数的末尾添加一个返回语句。

这个有用吗?

代码语言:javascript
复制
var firstNumber = 0;
var secondNumber = 1;

function fibonacciGenerator(n){
  while (secondNumber <= n){
      firstNumber = firstNumber + secondNumber;
      secondNumber = secondNumber + firstNumber;
  }
  return secondNumber
}

console.log(fibonacciGenerator(50));

票数 0
EN

Stack Overflow用户

发布于 2020-06-26 01:27:20

您需要赋值第三个变量来存储第一个和第二个变量的和,在此之后,您应该使您的循环从2开始,而不是1,因为您已经在循环开始之前对它进行了放气,而当您将一个值从变量分配给另一个变量时,它从右到左工作,所以应该是这样的。

代码语言:javascript
复制
 firstNumber = firstNumber + secondNumber;
 secondNumber = secondNumber + firstNumber;

所以编辑后会是这样的

代码语言:javascript
复制
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))

要阅读更多关于它的信息,请查看此链接

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62586491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档