hdu 1196 Lowest Bit
这题题意是,把数换成二进制,然后从右边数起第一个为1的位置n,然后最小数就是2*( n - 1 ),开始还想用短除法,不过小白说这里可以用A&-A,就可以得出来;
#include<stdio.h>
int main( )
{
int x,y,z,n;
while( scanf( "%d",&x ) ,n )
{
z = 1;
int y = 0;
while( y != 1 )
{
y = x % 2;
x = x / 2;
z *= 2;
}
printf( "%d\n",z / 2 );
}
return 0;
}
#include<stdio.h>
int main( )
{
int a;
while( scanf( "%d",&a ),a )
{
a = a & ( -a );
printf( "%d\n",a );
}
return 0;
}
本人还是新手 ,转载请注明来自Lvsi‘s home
浙公网安备 33010602011771号