1 solutions

  • 0
    @ 2025-11-5 19:54:26

    C :

    int main(int argc, char* argv[])
    {char num[101];
    int a[101],len,sum,i,j;
    while(gets(num))
    {    sum=0;
    	len=strlen(num);
    if(num[0]=='0')break;
    
    for(i=0;i<len;i++)
     a[i]=num[i]-'0';
    j=len;
    for(i=0;i<len;i++)
      sum+=a[i]*(pow(2,j--)-1);
    
    printf("%d\n",sum);
    }
    	return 0;
    }
    
    

    C++ :

    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    using namespace std;
    const int maxn=100+2;
    char num[maxn];
    
    int result(int x)
    {
        int s=1;
        for(int i=0;i<x;i++)
        s*=2;
        return s-1;
    }
    
    int main()
    {
        while(scanf("%s",num)&&(num[0]!='0'))
        {
            int len=strlen(num);
            int sum=0;
            for(int i=0;i<len;i++)
            sum+=(num[i]-'0')*result(len-i);
            printf("%d\n",sum);
        }
        return 0;
    }
    
    • 1

    Information

    ID
    19810
    Time
    1000ms
    Memory
    32MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By