1 条题解

  • 0
    @ 2025-4-12 21:50:59

    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

    信息

    ID
    1926
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者