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