LeedCode 231. 2的幂


2的幂

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

示例 1:

输入: 1
输出: true
解释: 20 = 1
示例 2:

输入: 16
输出: true
解释: 24 = 16
示例 3:

输入: 218
输出: false

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/power-of-two

1.
class Solution {
public:
    bool isPowerOfTwo(int n) {
        return (n>0)&&(n&-n)==n;
    }
};

n&-n
n= 10100100
-n= 01011100
n&-n= 00000100
算出从右边数第一个1

2.
class Solution {
public:
    bool isPowerOfTwo(int n) {
        return n>0&&(1<<30)%n==0;
    }
};

文章作者: LHL
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 LHL !
评论
  目录