Light OJ 1105

来源:互联网 发布:在淘宝怎么货到付款啊 编辑:程序博客网 时间:2024/06/03 22:52

就。。完全没觉得像dp。

代码:

    #include<cstdio>    typedef long long lld;    lld sum[50]={0};    lld dp[50]={0};    int main(){        int i;        int t,cas=0;        dp[1]=1;dp[2]=1;sum[1]=1;sum[2]=2;        for(i=3;i<50;++i){            dp[i]=dp[i-1]+dp[i-2];            sum[i]=sum[i-1]+dp[i];        }        scanf("%d",&t);        while(cas++<t){            int n;            scanf("%d",&n);            printf("Case %d: ",cas);            for(i=1;;++i)if(sum[i]>=n)break;            int len=i;            while(len){                if(sum[len-1]<n){                    putchar('1');                    n-=sum[len-1]+1;                }else putchar('0');                --len;            }            putchar('\n');        }        return 0;    }


0 0
原创粉丝点击