HDU 1196 lowest bit
这题是树状数组的一入门题,lowest bit 就是将相应的十进制转换成二进制,在这个二进制数种从右往左数第一个不为0的位置的权值,有一种简单的做法
#include<stdio.h> int main( ) { int n; while( scanf( "%d",&n ) ,n ) printf( "%d\n",n&( -n ) ); }
比较常规的做法
#include<stdio.h> int main( ) { int n,x,y; while( scanf( "%d",&n ) ,n ) { y = 1; while( !( n % 2 ) ) { y *= 2; n /= 2; } printf( "%d\n",y ); } }
本人还是新手 ,转载请注明来自Lvsi‘s home