10进制 VS 2进制

时间:2023-03-09 01:39:02
10进制 VS 2进制

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;
}