題:
Given an integer, write a function to determine if it is a power of two.
也就是判斷一個數是不是2的冪次方
solution:
這道題解法很多,最簡單的就是循環。
已知2的冪次方的二進制中有且只有一位爲1。
我們向右移動,直到當前位爲1。再在當前狀態右移一位,如果是剩餘位都是零那麼就是2的冪次方。
class Solution {
public:
bool isPowerOfTwo(int n) {
int i = 0;
int m = 1;
while(n>>i)
{
if((n>>i)&1==1){
m=n>>(i+1);
break;
};
i++;
}
if(m==0)
return true;
return false;
}
};