/**
* 案例2 分治算法 走樓梯
* 一個臺階總共有n級,如果一次可以走1級,也可以一次走2級,求總共有多少種走法。
* 分析:
* 如果只有1級臺階,則只有一種走法,如果有2級臺階,則有2種走法:一次走1級或一次走2級
* 假設有三級臺階,則可以一次走1級或一次走2級,如果一次走1級則還剩2級臺階,產生2種走法(上面已經說了),
* 一次走2級則還剩1級只有一種走法,總共的走法就是2+1=3.
* 3
* /\
*剩餘級數 2 1
* 走法 2 + 1 = 3
* 由此可見,n>2時,走法數就是第一次走1級後剩餘級數的走法數+第一次走2級後剩餘級數的走法數,這正是遞歸
*可以歸納出公式:
* f(n) = 1 n=1
* = 2 n=2
* =f(n-1) + f(n-2) n>2
* 觀察公式可發現,這其實是斐波那契數列!
*
* **/
public class zoulouti {
public static void main(String[] args){
int res = solution(3);
System.out.println(res);
}
static int solution(int n){
if (n==1) return 1;
if (n==2) return 2;
return solution(n-1) + solution(n-2);
}
}