zoukankan      html  css  js  c++  java
  • 求斐波那契数组中的奇数之和

    题目

    在这道题目中,我们需要写一个函数,参数为一个正整数num。它的作用是计算斐波那契数列中,小于或等于num的奇数之和。
    斐波那契数列中,第一和第二个数字都是 1,后面的每个数字由之前两数相加得出。斐波那契数列的前六个数字分别为:1、1、2、3、5、8。
    比如,sumFibs(10)应该返回10。因为斐波那契数列中,比10小的数字只有 1、1、3、5。
    sumFibs(4000000)应该返回 4613732。
    sumFibs(1000)应该返回 1785。
    sumFibs(75025)应该返回 135721。

    代码

    var sumFibs = (function () {
      let arr = [0, 1, 1]
      return function (n) {
        if (!arr[n]) {
          let i = arr.length;
          while (i <= n) {
            arr[i] = arr[i - 1] + arr[i - 2]
            i++
          }
        }
        return sum(arr, n);
      }
    })();
    function sum(arr, n) {
      return arr.reduce(function (prev, cur, index, arr) {
        return cur % 2 && cur <= n ? prev + cur : prev;
      })
    }
    sumFibs(4);
    
  • 相关阅读:
    框架集。样式表
    2017.11.23知识点整理
    HTML5的标签
    HTML5大体概括截图
    2017.11.21 通用标签及属性
    2017.11.21 课程随记
    JavaScript数组
    JavaScript语句
    javascript基础知识
    不用alert提示的非空表单验证
  • 原文地址:https://www.cnblogs.com/superlizhao/p/12273625.html
Copyright © 2011-2022 走看看