(LeetCode 231)Power of Two

題:
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;
    }
};
發佈了45 篇原創文章 · 獲贊 15 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章