231.2的幂

keybot
1
2025-08-20

给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。

如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。

提示:

  • -231 <= n <= 231 - 1

思路

  1. 循环判断一下是不是 2 的幂
bool isPowerOfTwo(int n) {
    long x = 1;
    for (int i = 0; i < 32; i++) {
        if (x == n)
            return true;
        x *= 2;
    }
    return false;
}
  1. 采用位运算的方法判断
bool isPowerOfTwo(int n) {
    return n > 0 && (n & (n - 1)) == 0;
}