这个题要求求出一个数n可以有多少种写成2的次幂和的形式。
参考了下网上大牛写的教程,自己也总结了下。
地址:http://ip96cns.blog.163.com/blog/static/170095192201210167235343/
代码:
#include<cstdio>
#include<cstring>
const int maxn=10e5+10;
const int mod=10e8;
long long ans[maxn];
int main()
{
ans[1]=1;
ans[2]=2;
for(int i=3;i<maxn;i++)
if(i&1)
ans[i]=ans[i-1];
else
ans[i]=(ans[i-1]+ans[i/2])%mod;
int n;
while(scanf("%d",&n)!=EOF)
{
printf("%d\n",ans[n]);
}
return 0;
}