zoukankan      html  css  js  c++  java
  • 斐波那契列数JS的三种实现

    大家是怎么实现斐波那契列数的
    1,1,2,3,5,8...
    f(n)=f(n-1) + f(n-2)

    方法一:

    function f(n){
        if(n == 1 || n == 0){
            return 1;
        }
        return f(n-1) + f(n-2);
    }
    index.html

    再给两种解法,对比一下
    方法二:

    function f(n) {
        var arr = [];
        var value = null;
    
        function _f(n) {
            if (n == 1 || n == 0) {
            return 1;
        }
        if (arr[n])
            return arr[n];
            value = _f(n - 1) + _f(n - 2);
            arr[n] = value;
            return value;
        }
        return _f(n);
    }        
    方法二

    还有一种更简单的用的是数组存储
    方法三:

     function fn(n) {
         var dp = new Array(n + 1);
         dp[0] = dp[1] = 1;
         for (let i = 2, length = dp.length; i < length; i++) {
              dp[i] = dp[i - 1] + dp[i - 2];
         }
         return dp[n];
    }
    方法三
  • 相关阅读:
    linux
    网络编址
    抽象类 接口
    mysql
    java
    [lyu]Mysql解压版安装教程
    Mysql出现拒绝本地账户访问的情况副本
    js
    Redis限流和GeoHash
    布隆过滤器
  • 原文地址:https://www.cnblogs.com/lanshanxiao/p/13050936.html
Copyright © 2011-2022 走看看