通過遞歸法解決階梯問題(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));
        }

    }


}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM