W3Cschool中级脚本算法(13.斐波纳契奇数求和算法挑战)

斐波纳契奇数求和算法挑战


问题:

给一个正整数num,返回小于或等于num的斐波纳契奇数之和。

斐波纳契序列中的前两个数字是1和1.序列中的每个附加数字是前面两个数字的和。斐波纳契序列的前六个数字是1,1,2,3,5和8。

例如,sumFibs(4)应该返回 5,因为斐波纳契数列中所有小于4的奇数是 1、1、3。

提示:此题不能用递归来实现斐波纳契数列。因为当num较大时,内存会溢出,推荐用数组来实现。


要求:

sumFibs(1) 应该返回一个数字。

sumFibs(1000) 应该返回 1785。

sumFibs(4000000) 应该返回 4613732。

sumFibs(4) 应该返回 5。

sumFibs(75024) 应该返回 60696。

sumFibs(75025) 应该返回 135721。


问题答案:

var fibo = [1, 1];
  var nums = 2;
  var temp = 0;
  while(true){
    temp = fibo[0] + fibo[1];
    if(temp > num){

      return nums;
    }
    if(temp % 2 !== 0){
      nums += temp;
    }
    fibo[0] = fibo[1];
    fibo[1] = temp;

  }

题目链接:

https://www.w3cschool.cn/codecamp/sum-all-odd-fibonacci-numbers.html

猜你喜欢

转载自blog.csdn.net/qq_42044073/article/details/82714131
今日推荐