思路:设f(n)为从1爬到第n层台阶的走法,则f(n)=f(n-1)+f(n-2)。
代码:
public class ClimbingStairs {
public static void main(String[] args) {
System.out.println(climbStairs2(44));
}
public static int climbStairs2(int n) {
if(n==1)
return 1;
if(n==2)
return 2;
int a=1,b=2;
int c=0;
while(n-->2){
c=a+b;
a=b;
b=c;
}
return c;
}
//递归方法会显示超时
public static int climbStairs(int n) {
if(n==1)
return 1;
if(n==2)
return 2;
return climbStairs(n-1)+climbStairs(n-2);
}
}
输出: