liu60255522 发表于 2014-11-9 14:26:54

求前辈解决《二进制整数转十进制

Problem A: 二进制整数转十进制Time Limit: 1 SecMemory Limit: 2 MB
Submit: 2745Solved: 969
Description给出一个二进制的非负整数x,x<232,把它转换成十进制数输出。



Input输入为多行,每行一个二进制非负整数x。


Output每行输出x对应的十进制数值。


Sample Input0 1 01 10 11 100001 1111111111111111
Sample Output0 1 1 2 3 33 65535
HINT
注意数据范围!!!


Append Code



我的程序:
#include<stdio.h>

int ji(int j){
    int i,x=1;
    for(i=1;i<j;i++){
      x=x*2;
    }
    return x;
}

int main(void)
{
    char a;
    unsigned long long y,z;
    int i,j,x;
    while(~scanf("%s",&a)){
      z=0;
      for(i=0;;)
            if(a!='0')
                break;
      for(j=0;;)
            if(a==0)
                break;
      for(x=j-2;x>=0;x--){
            y=(a-'0')*ji(j-x-1);
            z+=y;
      }
      printf("%llu\n",z);
    }
    return 0;
}

老是不对,请问为什么?
求指点,感谢

fireofsun 发表于 2014-11-9 19:46:09

光看输出结果的话是对的啊,也没报错

风之残月 发表于 2014-11-9 21:31:26

运行了下,运行结果正确,如果你是要输出结果像上面显示的那样输出的话,把printf("%llu\n",z); 改为 printf("%llu ",z);
页: [1]
查看完整版本: 求前辈解决《二进制整数转十进制