Amazon Interview Question
Software Engineer / Developersif (n & (n +1)) == 0)
printf("Number is 1 less than power of 2\n") ;
else
printf("Number is NOT 1 less than power of 2\n") ;
int pwr2ls1(int number)
{
int n= number +1;
if( (n) & (n-1) == 0)
return 1 ;
else return 0;
}
Here is thought. Let the number is x.Compute k=log(x+1)on base 2. If((1<<k)==(x+1)) then true otherwise false
- Anonymous February 12, 2011