杭电ACM 1196

#include<stdio.h>
int main()
{
int num,j,k,s,f;
int a[7]={0,0,0,0,0,0,0};
while(scanf("%d",&num)!=EOF){
if(num==0)
break;
if(num==1)
printf("1 ");
else
{j=6;
k=0;
for(int i=1;i<=6;i++)
{
a[j]=num%2;
num=num/2;
if(num==1)
{
a[j-1]=1;
k=1;}
j--;
if(k==1)
break;
}
for(int i=6;i>=0;i--)
{
if(a[i]==1)
{
f=6-i;
if(f==0)
{
s=1;
break;
}
else
s=1;
for(int p=1;p<=f;p++)
s=s*2;
break;
}
}
printf("%d ",s);
}
}
return 0;
}

原文地址:https://www.cnblogs.com/yixianyong/p/4375280.html