c++跳楼梯问题如下
然后我用一个函数,以 j 计数,用递归解决,代码如下
#include <bits/stdc++.h>
using namespace std;
void cs(int n,int &j)
{
if(n==2||n==3)
{
j++;
j=j%1000000007;
return;
}
else if(n<2)
{
return;
}
if(n%2==0)
{
cs(n-1,j);
cs(n-2,j);
}
else
{
cs(n-3,j);
cs(n-4,j);
}
}
int main()
{
int n,j=0;
cin>>n;
cs(n,j);
cout<<j;
return 0;
}
但是提交后它超时了
它数据太大了,以这种方法就显得力不从心。
请问有什么更快的解决方法吗?