杭电2041
题目
AC代码
#include<iostream>
using namespace std;
int viral(int m)
{
if(m==3) return 2;
else if(m==2) return 1;
return viral(m-1)+viral(m-2);
}
int main()
{
int n;
int m;
cin>>n;
while(n--)
{
cin>>m;
cout<<viral(m)<<endl;
}
return 0;
}
解题思路
假设前面楼梯种类数已经确定,增加一个新楼梯,如果这个楼梯是被一步上去的则是f(n-1),如果是两步上去的则是f(n-2)