- 假设你正在爬楼梯需要Ñ阶你才能到达楼顶每次你可以爬1或2个台阶你有多少种不同的方法可以爬到楼顶呢注意:?!给定Ñ是一个正整数 *
思路是把走法看成n-1层的走法+1与n-2层的走法+2之和,属于动态规划
用迭代代替递归
int climbStairs(int n) {
int sum=0,p2=2,p3=3;
if(1==n) return 1;
if(2==n) return 2;
if(3==n) return 3;
while(n>3)
{
sum=p2+p3;
p2=p3;
p3=sum;
n--;
}
return sum;
}