求前辈解决《二进制整数转十进制
Problem A: 二进制整数转十进制Time Limit: 1 SecMemory Limit: 2 MBSubmit: 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;
}
老是不对,请问为什么?
求指点,感谢
光看输出结果的话是对的啊,也没报错 运行了下,运行结果正确,如果你是要输出结果像上面显示的那样输出的话,把printf("%llu\n",z); 改为 printf("%llu ",z);
页:
[1]