<center style="color:rgba(0,0,0,.870588);font-family:Lato, 'Helvetica Neue', Arial, Helvetica, sans-serif;font-size:14px;">
</center>
进制转换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;
}