有50阶楼梯每次走1或2阶,一共有多少种走法?
台阶 | 走法 |
---|---|
1 | 1种 |
2 | 2种:1+1/2 |
3 | 3种:1+1+1/1+2/2+1 |
4 | 5种:1+1+1+1/1+2+1/1+1+2/2+1+1/2+2 |
由此可以看f(1)=1
f(2)=1
f(3)=f(1)+f(2)
f(4)=f(2)+f(3)
..............
f(n)=f(n-1)+f(n-2)
public class Louti {
public static void main(String[] args) {
System.out.println(f(50));
}
public static long f(long n) {
if(n==1||n==2) {
return n;
}
return f(n-2)+f(n-1);
}
}