Leetcode2 2的幂

给定一个整数,编写一个函数来判断它是否是 2 的幂次方。

示例 1:

输入: 1
输出: true
解释: 20 = 1

示例 2:

输入: 16
输出: true
解释: 24 = 16

示例 3:

输入: 218
输出: false

 

首先排除《=0的情况

2的幂的特点是二进制表示只有一位是1,所以利用位运算的特点

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

 

点赞