zoukankan      html  css  js  c++  java
  • 斐波那切数列

    通过下标求值

    • 生成数组
    function fib(index){
       let arr = [1,1]
       for(let i = 2;i < index + 1;i++){
         arr.push(arr[i - 1] + arr[i - 2])
       }
       return arr[index]
    } 
    
    • 未生成数组
    function fib(index){
        let pre = 1,cur = 1,next;
        if(index < 2){
            return 1
        }
        for(let i = 2;i < index + 1;i++){
            next = pre + cur
            pre = cur;
            cur = next;
        }
        return next
    }
    

     非尾递归

    function fib(index) {
        if (index <= 1){
            return 1
        };
        return fib(index - 1) + fib(index - 2);
    }
    

    尾递归

    function fib(index,pre = 1,cur = 1){
        if(index <= 1){
            return cur
        }
        return fib(index - 1,cur,pre + cur)
    }
    

    通过值求下标

    function fib(val){
        if(val == 1){
            return 0
        }
        let pre = 1,cur = 1,next;
        for(let i = 2;i < val;i++){
            next = pre + cur
            pre = cur;
            cur = next;
            if(val == next){
                return i
            }else if(next > val){
                return -1
            }
        }
    }
    function fib(val){
        if(val == 1){
            return 0
        }
        let pre = 1,cur = 1,next = pre + cur,i = 2;
        while(next <= val){
            if(next == val){
                return i
            }
            pre = cur;
            cur = next;
            next = pre + cur
            i++
        }
        return -1
    }
    以自己现在的努力程度,还没有资格和别人拼天赋
  • 相关阅读:
    uva 10129
    年化利率
    house买房原理,2019,第一版
    car二手车购买原理
    car购车翻译篇
    car配置篇
    健身原理
    语法学习,从句
    语法学习,简单语句
    名词解释
  • 原文地址:https://www.cnblogs.com/zhenjianyu/p/13141046.html
Copyright © 2011-2022 走看看