javascript - 我需要对所有奇数斐波那契数求和,但仅适用于某些数字

标签 javascript

任务:给定一个正整数 num,返回所有小于或等于 num 的斐波那契奇数之和。

斐波那契数列中的前两个数字是 1 和 1。序列中的每个附加数字都是前两个数字的总和。斐波那契数列的前六个数字是 1、1、2、3、5 和 8。

例如,sumFibs(10) 应该返回 10,因为所有小于 10 的奇数斐波那契数都是 1、1、3 和 5。

这是在 freecodecamp 上。我看过示例,我知道我可以轻松复制它们,但我想编写自己的代码,有人可以解释为什么我得到这些 results我哪里出错了?谢谢。

function sumFibs(num) {
  var arr = [0, 1, 1]; //array of fibonacci numbers
  var fin = 0; //variable for final number
  for(var i = 3;i < 35;i++)
    {
      arr[i] = arr[i-1] + arr[i-2];
    }
  // loop to make fibonacci numbers
  for(var x = 0; x < arr.length-1; x++)
    {
        if(arr[x] <= num  && (arr[x] % 2 === 0))
          {
          fin += arr[x];
          }//if to check if array of fibonacci numbers[x] is less than num && if it is odd
    }//loop to go through every fibonacci number
  return fin;
}
sumFibs(1000);

最佳答案

当你有模运算时:

    if(arr[x] <= num  && (arr[x] % 2 === 0))

你在问两件事:

  1. 如果arr[x]值小于数字(检查)
  2. 如果 arr[x] 的值是偶数,而不是奇数。

这就是您的问题所在。

你应该使用:

    if(arr[x] <= num  && (arr[x] % 2 != 0))

关于javascript - 我需要对所有奇数斐波那契数求和,但仅适用于某些数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41968125/

相关文章:

asp.net - js 字符串中的鳄鱼标签(<% %>)?

javascript - 使用 JavaScript 中的临时凭证上传到 AWS S3

javascript - ReactJS componentDidMount 和 Fetch API

javascript - 运行用户输入的 Javascript 时,有没有办法检测并停止 "problem"脚本?

javascript - 遍历所有跨度并使用 JQuery 更新一个字段

javascript - 如何仅使用 JavaScript 准确显示两个以上输入字段的表单验证错误消息?

javascript - f(arguments) 和 f.apply(this,arguments) 有什么区别?

javascript - 使用 Node.js 请求 (req) 作为 WeakMap 的键是否安全

javascript - 在我的目录中显示图像时,如何向其添加返回(或后退)按钮?

javascript - 如何使用 jquery 显示单个字段的值数组?