hdu 2709 Sumsets
题意:
把n拆成几个数的和,这些数要是等于2^x的正整数。
代码:
#include<stdio.h>
__int64 i,a[1000001]={1,1,2};
int main()
{
for(i=3;i<1000001;i++)
{
if((i&1)==1)
{
a[i]=a[i-1]; //i为奇数与它前一个数量相同
}
else
{
a[i]=(a[i-2]+a[i>>1])%1000000000; //含有1: a[i-1]每种情况填11、不含1: a[i/2]每种情况*2
}
}
while(scanf("%I64d",&i)!=EOF)
{
printf("%I64d\n",a[i]);
}
return 0;
}
补充:软件开发 , C++ ,