当前位置:编程学习 > C/C++ >>

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++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,