Given an integer, write a function to determine if it is a power of two.
對于小于等于0的數,他們肯定不是2的冪指數倍。考慮大于等于零的數,當然可以循環暴力求解看是否能始終被二除,但是這里有一種更好的方法對于一個正數來說,如果一個數是2的冪,那么他肯定是1000000這種形式,對于這個數,減去1,可以得到011111111,可以看到這兩個數每個位都是不一樣的,只要檢查兩個數是否相與為零就好了。
class Solution {
public boolean isPowerOfTwo(int n) {
if(n<=0)
return false;
else
return ((n-1)&n)==0;
}
}