现在对递推的公式还是不太清楚,这题倒是找规律找出来的,挺简单
#include<iostream>
#include<algorithm>
using namespace std;
const int MOD=1000000000;
int dp[1000010];
int main()
{
int n;
cin>>n;
dp[0]=1;
for(int i=0;i<=n+10;i++)
{
if(i&1)
dp[i]=dp[i-1];
else
dp[i]=(dp[i-1]+dp[i/2])%MOD;
}
cout<<dp[n]<<endl;
return 0;
}