假设你正在爬楼梯。需要 n
阶你才能到达楼顶。
每次你可以爬 1
或 2
个台阶。你有多少种不同的方法可以爬到楼顶呢?
思路一:递归
int climbStairs(int n){
int num[n+1];
num[0]=1,num[1]=1;
for(int i=2;i<=n;i++){
num[i]=num[i-1]+num[i-2];
}
return num[n];
}
分析:
本题下一级台阶的方法等于前一级台阶加上前两级台阶的方法数,不断递归到n得到答案
总结:
本题考察递归的应用,将台阶问题转换为递归问题即可解决