#include <stdio.h>
int main()
{
int A, ans;
while(~scanf("%d",&A) && A)
{
ans = 1;
while((A & 1) == 0)
{
ans *= 2;
A = A >> 1;
}
printf("%d\n",ans);
}
return 0;
int main()
{
int A, ans;
while(~scanf("%d",&A) && A)
{
ans = 1;
while((A & 1) == 0)
{
ans *= 2;
A = A >> 1;
}
printf("%d\n",ans);
}
return 0;
}
心得:二进制运算适合用位运算处理,注意运算方式和&和==的优先级。