友情支持

如果您觉得这个笔记对您有所帮助,看在D瓜哥码这么多字的辛苦上,请友情支持一下,D瓜哥感激不尽,😜

支付宝

微信

有些打赏的朋友希望可以加个好友,欢迎关注D 瓜哥的微信公众号,这样就可以通过公众号的回复直接给我发信息。

wx jikerizhi

公众号的微信号是: jikerizhi因为众所周知的原因,有时图片加载不出来。 如果图片加载不出来可以直接通过搜索微信号来查找我的公众号。

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

进阶:你能不使用循环或者递归来完成本题吗?

思路分析

4 的幂次方,则必然是 2 的幂次方,必然 n & (n - 1) == 0。再观察 4 的幂次方的二进制表示特征,长度都是 (length - 1) % 2 == 0

0342 10
  • 一刷

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
/**
 * @author D瓜哥 · https://www.diguage.com
 * @since 2025-07-14 15:32:51
 */
public boolean isPowerOfFour(int n) {
  return (n > 0)
    && ((n & (n - 1)) == 0)
    && ((Integer.toBinaryString(n).length() - 1) % 2 == 0);
}