美文网首页
跳台阶,生小兔(斐波那契数列)

跳台阶,生小兔(斐波那契数列)

作者: 柠檬不萌5120 | 来源:发表于2018-03-28 15:10 被阅读0次

    题目描述: 一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。求总共有多少总跳法。
    分析:
    台阶数 1 2 3 4 5
    方法数 1 2 3 5 8
    最终你会发现规律:f(n) = f(n-1)+f(n-2) ; n>=3时
    递归方法:

    function methodNum(num) {
        if(num>0&&num<3){
            return num;
        }else if(num>=3){
            return methodNum(num-1)+methodNum(num-2);
        }
    }
    

    非递归方法:

    function methodNum(n) {
        if(n<3){
            return n;
        }
        var res = 0;
        var resOne = 1;
        var resTwo = 2;
        for(var i=3;i<=n;i++){
            res = resOne+resTwo;
            resOne = resTwo;
            resTwo = res;
        }
        return res;
    }
    

    还有一种疯狂跳台阶,是普通跳台阶的升级版。
    题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法?
    递归方法:

    function tmp(num) {
        if(num===1){
            return 1;
        }else {
            return tmp(num-1)*2;
        }
    }
    

    非递归法:

    function tmp(num) {
        return Math.pow(2,num-1);
    }
    

    本人写的比较简陋,具体的分析过程没写,想看的可看链接

    相关文章

      网友评论

          本文标题:跳台阶,生小兔(斐波那契数列)

          本文链接:https://www.haomeiwen.com/subject/eivycftx.html