今天终于明白什么是compilation error了,原来我太爱写注释了,不能提交带中文的东西啊。这道题不必把它的二进制先计算出来,只计算一部分即可。用十进制不断除2,到余数是1就终止。
用时:0ms
#include
#include
int a;
int main()
{
int i,t;
while(scanf("%d",&a)==1)
{
if(a==0)
return 0;
i=0;
while(a%2!=1)
{
i++;
a=a/2;
}
t=pow(2,i*1.0);//为什么不能直接写
printf("%d/n",t);
}
return 0;
}