<center style="color&#58;rgba&#40;0&#44;0&#44;0&#44;&#46;870588&#41;&#59;font&#45;family&#58;Lato&#44; &#39;Helvetica Neue&#39;&#44; Arial&#44; Helvetica&#44; sans&#45;serif&#59;font&#45;size&#58;14px&#59;">

进制转换1

时间限制: 1 Sec   内存限制: 32 MB
</center>

题目描述

将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。

输入

多组数据,每行为一个长度不超过30位的十进制非负整数。
(注意是10进制数字的个数可能有30个,而非30bits的整数)

输出

每行输出对应的二进制数。

样例输入

985
211
1126

样例输出

1111011001
11010011
10001100110
#include<stdio.h>
#include<string.h>
int main()
{
    char a[50],c[550];
    int i,j,k,n,len,sum;
    while(scanf("%s",a)!=EOF)
    {
        len=strlen(a);
        for(i=0;i<len;i++)
            a[i]-='0';
        c[j=0]='0';sum=1;
        while(sum)
        {
            sum=0;
            for(i=0;i<len;i++)
            {
                k=a[i]/2;sum+=k;
                if(i==len-1)
                    c[j++]=a[i]%2+'0';
                else
                    a[i+1]+=a[i]%2*10;
                a[i]=k;
            }
        }
        for(i=j-1;i>=0;i--)
            printf("%c",c[i]);
        printf("\n");
    }
    return 0;
}