【Day35】342. 4的幂

342. 4的幂

给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。

整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4x

示例 1:

输入:n = 16
输出:true

示例 2:

输入:n = 5
输出:false

示例 3:

输入:n = 1
输出:true

提示:

  • -231 <= n <= 231 - 1

题解:

一个数是2的幂,那么二进制从右边数奇数位是1的一定是4的幂。判断是2的幂,我们只需要判断二进制中1的个数,用昨天的解即可。

0x55555555的  二进制是  01010101 01010101 01010101 01010101
class Solution {
public:
    bool isPowerOfFour(int n) {
    return n > 0 && (n & (n - 1)) == 0 && (n & 0x55555555) == n;
    }
};

   转载规则


《【Day35】342. 4的幂》 Tyzhao 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
【Day36】LeetCode 1744 【Day36】LeetCode 1744
1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗?给你一个下标从 0 开始的正整数数组 candiesCount ,其中 candiesCount[i] 表示你拥有的第 i 类糖果的数目。同时给你一个二维数组 queries ,其中 q
2021-06-01
下一篇 
【Day34】231. 2 的幂 【Day34】231. 2 的幂
231. 2 的幂给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。 如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。 示例 1: 输入:n = 1 输出:
2021-05-30
  目录