爬楼梯算法:已知一个楼梯有n个台阶,每次可以选择迈上一个或者两个台阶,
求走完一共有多少种不同的走法
package com.softeem.method_;
public class MethodDemo2 {
public static void main(String[] args) {
//爬楼梯算法:已知一个楼梯有n个台阶,每次可以选择迈上一个或者两个台阶,
// 求走完一共有多少种不同的走法
/*
n = 0 0种
n = 1 1种
n = 2 2种(11 2)
n = 3 3种(111 12 21)
n = 4 5种(1111 112 121 211 22)
n = 5 8种(11111 1112 1121 1211 122 2111 221 212)
n = 6 13种()
n = 7 21种
规律:n=3 ----> fun(n-1) + fun(n-2) fun(2) + fun(1)
n=4 ----> fun(2)+ fun(3) fun(n-2) + fun(n-1)
n=5 ----> fun(3)+ fun(4) fun(n-2) + fun(n-1)
n=6 ----> fun(4)+ fun(5) fun(n-2) + fun(n-1)
*/
MethodDemo2 demo = new MethodDemo2();
int i = demo.fun(100);
System.out.println("i = " + i);
}
public int fun(int num){
if(num == 0){
return 0;
}else if(num == 1){
return 1;
}else if(num == 2){
return 2;
}else {
return fun(num - 1) + fun(num - 2);
}
}
}