【问题标题】:Sum All Odd Fibonacci Numbers将所有奇数斐波那契数相加
【发布时间】:2021-07-26 16:06:25
【问题描述】:

所以我应该添加所有奇数斐波那契数并返回总和。这是我的代码,但我没有做对。抱歉,我是新手,请帮帮我。

function sumFibs(num) {
  let secpre=0
  let pre=1
  let current=0;
  let arr=[pre]
  let y=[]
  let sum
  for(let i=1;i<=num;i++){
if(num==1){return 1}
    else if((secpre+pre)<num){
      current=secpre+pre;
      secpre=pre;
      pre=current;
     arr.push(current)

    }  
  }

arr.map(x=>{if(x%2!==0){
  return y.push(x)
}})

y.reduce((a,b)=>{ sum=0;
sum+=a+b;
return sum
})

console.log(y)
console.log(sum)
return sum

  }

sumFibs(75025)

对于 sumFibs(75025) 的值,它应该是 135721,但我得到的是 60696。

【问题讨论】:

  • 请用您使用的语言标记。
  • JavaScript,@chepner.
  • 感谢 Hcaertnit。对不起,我忘了添加

标签: fibonacci


【解决方案1】:

你有一个好主意,干得好!虽然,这是我认为更容易理解的解决方案:

    function sumFib(num) {
       let odd_sum = 1;
       let nums = [0, 1];
       while (odd_sum < num) {
           new_num = nums[nums.length - 2] + nums[nums.length - 1];
           nums.push(new_num);
           if (new_num % 2 == 1) odd_sum += new_num;
       }
       return odd_sum;
   }
   console.log(sumFib(75025));

如果您对某些事情感到困惑,请随时询问。

【讨论】:

  • 感谢 stefan 帮了大忙
猜你喜欢
  • 2020-09-02
  • 1970-01-01
  • 1970-01-01
  • 2020-01-18
  • 1970-01-01
  • 2015-06-05
  • 2014-05-23
  • 2014-05-03
  • 1970-01-01
相关资源
最近更新 更多