Fibonacci数字 - 仅添加奇数 - Javascript

sme*_*loa 2 javascript math sum fibonacci

因此,我正在尝试开发一个公式,将所有奇数斐波纳契数加到并包括给定数.

例如:

  • 给定数字是4.然后结果应该是5(奇数斐波那契数字是1,1,3).

目前这是我的代码:

function sumFibs(num) {
  var sum = 0;
  for(i=0,j=1,k=0; k<=num;i=j,j=x,k++) {
    x = i + j;
    if (x%2 !== 0) {
      sum +=x;
      if (sum >= sum) {
        break;
      }
    }
  }
  return sum;
}
sumFibs(4);
Run Code Online (Sandbox Code Playgroud)

显然代码不起作用.如果我删除(if sum> = sum)break语句,它会创建一个无限循环.我已经从另一个帖子中获取了for循环,其中给出了一个公式来创建一个Fibonacci序列,但是我在生成该数字之后要做什么有困难,我该如何添加它.我尝试这样做的方法是检查模数是否不为0(表示它是一个奇数).

谢谢你的帮助.

tam*_*ros 6

您的代码与变量名称和声明有点混淆(总是尝试使用var声明).这是一个能够满足您需求的功能

function sumFibs(num) {
  var fib0 = 0;
  var fib1 = 1;
  var fib = 1;
  var sum = fib0;
  while ( fib <= num){
    if (fib % 2) {
        sum += fib1;
    }
    fib = fib0 + fib1;
    fib1 += fib0;
    fib0 = fib1 - fib0;
  }

  return sum;
}
Run Code Online (Sandbox Code Playgroud)