递归算法 菲波那切数列 (一个楼梯有n阶,每一次可以走一个台阶或者二个台阶请问总共有几种走法)

package com.bailang.louti;
/**
 * Encoding:utf-8
 * Author: bailanglang
 * Date:  2020-10-20 16:54
 * Version:1.0
 * Description:一个楼梯有n阶,每一次可以走一个台阶或者二个台阶请问总共有几种走法
 */
public class JumpStepProblem {
    /**
     * @author bailanglang
     * Description 主方法
     */
    public static void main(String[] args) {
        JumpStepProblem jumpStepProblem = new JumpStepProblem();
        System.out.println("当台阶数为10,共有"+jumpStepProblem.Fibonacci(10)+"种走法!");
    }
     public static int  Fibonacci(int  n){
        /*
        * 当阶数小于0  直接报-1退出
        * 当阶数为1,1种
        * 当阶数为2,2种
        * 当阶数为3,3种
        * 当阶数为4,5种
        * 当阶数为5,8种
        *……………………
        * 当阶数为n,共Fibonacci(n-1)+Fibonacci(n-2)种
        * */
        if(n <0){return  -1;}
        if(n <=2){return  n;}
        return  Fibonacci(n-1)+Fibonacci(n-2);
    }
}

 

posted @ 2020-10-21 14:59  BAILANGL  阅读(213)  评论(0编辑  收藏  举报