1. 程式人生 > >Leetcode---231. 2的冪

Leetcode---231. 2的冪

給定一個整數,編寫一個函式來判斷它是否是 2 的冪次方。

示例 1:

輸入: 1
輸出: true
解釋: 20 = 1

示例 2:

輸入: 16
輸出: true
解釋: 24 = 16

示例 3:

輸入: 218
輸出: false

----------------------------------------------------------------------------------------------------------------------------------------------------------------------

用位與運算來判斷n是不是2的冪,由二進位制的表達方式知,如果n是的話,那麼n的二進位制表示式中必須是首位為1,其餘全部是0,那麼與n-1進行位與運算的結果就是0.

class Solution {
public:
    bool isPowerOfTwo(int n) {
        if (!(n&(n-1))&&n>0)
            return true;
            return false;
    }
};