题目
代码
#include<iostream>
using namespace std;
int function(int stair){
if(stair <= 1) return 1;
else return function(stair-1) + function(stair-2);
}
int main(){
int stair;
cin >> stair;
cout << function(stair);
return 0;
}
分析
这里着重非递归的角度思考,function(n)是n阶台阶的走法,向后倒退有一步和两步的选择,所以function(n)=function(n-1)+function(n-2),function(1)=1,function(2)=2,正是斐波那契数列,即本问题可以使用迭代解决。