231. Power of Two

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;
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容