通过递归法解决阶梯问题(n个台阶,上楼可以一步上1阶,也可以一步上2阶,一共有多少种上楼的方法)

 

思路:提供了两种走阶梯的方式,一次一个阶梯或一次两个阶梯

  假设:

    只有一个阶梯,那么就是1,只有一种方法

    有两个阶梯:  1、1

            2    有两种方法

    有三个阶梯:  1、1、1    

            1、2

            2、1  有三种方法

可以发现当n不断变化,且n>2时,有f(n)=f(n-1)+f(n-2)。所以这里不管n有多大,我们还要反复的执行这个方法,直到这个n等于1或等于2时就可以终止了。

 

递归法可以很轻松的实现:

  

package com.company;

public class Main {


    public static void main(String[] args) {

        System.out.println(b(4));

    }


    public static int b(int get) {


        if (get == 1) {
            return 1;
        } else if (get == 2) {
            return 2;
        } else {
            return b(b(get - 2)) + b(b(get - 1));
        }

    }


}

  

posted @ 2019-10-21 17:12  西红柿里没有番茄  阅读(2848)  评论(0编辑  收藏  举报