n级阶梯,每次走一步和两步或三步,有多少种走法

来源:互联网 发布:小米note3网络异常 编辑:程序博客网 时间:2024/05/01 13:23

使用递归和斐波那契数列解决问题


    /**     * 该函数用递归实现     * @param int $n 阶梯数     */    function jieti($n){        if($n==1){            //jieti(1)=1            return 1;        }        elseif($n==2){            //jieti(2)=2            return 2;        }        elseif($n==3){            //jieti(3)=4            return 4;        }        return jieti($n-1)+jieti($n-2)+jieti($n-3);     }
    //主要通过公式,然后让公式一步步的分解成已知条件    //f(n)=f(n-1)+f(n-2)+f(n-3)    function step($n){        $res=0;        $a=1;        $b=2;        $c=4;        for($i=4;$i<=$n;++$i){            $res=$a+$b+$c;            $a=$b;            $b=$c;            $c=$res;            if($i==$n){                return $res;            }        }    }



0 0
原创粉丝点击