详细介绍:(LeetCode 每日一题) 342. 4的幂 (数学、二进制)

题目:342. 4的幂

在这里插入图片描述

思路:数学+二进制,时间复杂度0(1)。

4的幂,等价于2^(2*i),这里的i为非负整数。如果为4的幂,那么二进制形式时,只有一个1,且与01010101010101010101010101010101进行“与&”运算,结果不为0。
而01010101010101010101010101010101在16进制对应的是0x55555555。

C++版本:

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

JAVA版本:

class Solution
{
public boolean isPowerOfFour(int n) {
return n>
0 &&
(n&
(n-1))==0 &&
(n&
(0x55555555)) >
0;
}
}

GO版本:

func isPowerOfFour(n int) bool {
return n>
0 &&
(n&
(n-1))==0 &&
(n&
(0x55555555)) >
0
}
posted @ 2025-08-20 13:31  yfceshi  阅读(4)  评论(0)    收藏  举报