10进制 VS 2进制
时间限制: 1 Sec 内存限制: 32 MB
题目描述
样例输出
623
#include<stdio.h> #include<string.h> int data[10000]; int main() { char a[1010]; int i,j,k,n,len,sum; while(scanf("%s",a)!=EOF) { len=strlen(a); data[j=0]=0; sum=1; for(i=0;i<len;i++) a[i]-='0'; while(sum) { sum=0; for(i=0;i<len;i++) { k=a[i]/2;sum+=k; if(i==len-1) data[j++]=a[i]%2; else a[i+1]+=a[i]%2*10; a[i]=k; } } if(!j) j++; len=j;sum=1;j=0; while(sum) { sum=0; for(i=0;i<len;i++) { k=data[i]/10; sum+=k; if(i==len-1) a[j++]=data[i]%10+'0'; else data[i+1]+=data[i]%10*2; data[i]=k; } } for(i=j-1;i>=0;i--) printf("%c",a[i]); printf("\n"); } return 0; }