枚举得
n=1,ans=1.
n=2,ans=2.
n=3,ans=5.
n=4,ans=11.
n=5,ans=24.
怎么样,发现规律没有?
没错,f[i]=f[i-1]*2+f[i-3];
然后代码就很简单了,递推。
#include<bits/stdc++.h>
using namespace std;
long long n,f[1000001];
int main(){
cin>>n;
f[1]=1;
f[2]=2;
f[3]=5;
for(int i=4;i<=n;i++){
f[i]=f[i-1]*2+f[i-3];
f[i]%=10000;
}
cout<<f[n];
return 0;
}
公式的推导: