具体问题是:
假设有一个楼梯共有N步,你每次可以爬1步或2步。请编写一个函数来计算,有多少种不同的方法可以爬到顶。
此题给出的解如下:
int climbStaris(int n){
if(n <= 1) return 1;
if(n == 2) return 2;
int p = 1, q = 2, curr;
for( int i = 3; i <= n; ++i){
curr = p + q;
p = q;
q = curr;
}
return curr;
}
我不是很懂这个for循环意思,为什么进行了这样的循环操作,就能得到这道题的所有解?这里面用到了动态规划吗,哪里体现出来了。