先暴力写了一个DFS,然后找规律。。
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std; __int64 dp[]; int main()
{
dp[]=;
dp[]=;
dp[]=;
dp[]=;
for(int i=;i<=;i++)
dp[i]=dp[i-]++dp[i-];
int n;
while(~scanf("%d",&n))
printf("%I64d\n",dp[n]);
return ;
}