问题:假设你正在爬楼梯,需要n阶才能到达楼顶,每次可以爬1或2个台阶,问有多少种不同的方法可以爬到楼顶。
分析:到达n阶楼梯的方法数为到达n-1阶楼梯的方法数与到达n-2阶楼梯的方法数之和。假设 f(n) 表示到达n阶楼梯的方法数,则f(n) = f(n-1) + f(n-2),其中第一阶有一种方法,f(1)=1,第二阶有两种方法,f(2)=2。
代码:
public static int f(int n) {
if(n == 1) {
return 1;
}
if(n == 2) {
return 2;
}
return f(n - 1) + f(n - 2);
}