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
浙公网安备 33010602011771号