题目:

算法思想:一个数是2的幂,那么二进制形式一定是100000这种形式,那么n&n-1一定是0,否则就不是2的幂,注意输入n可能小于等于0,需要做判断。
代码:
bool isPowerOfTwo(int n) {
if(n <= 0)
return false;
if( ( n & (n - 1) ) == 0 )
return true;
return false;
}
本文介绍了一种快速判断一个整数是否为2的幂次方的有效算法。通过检查整数n与其减1后的值进行按位与运算,若结果为0且n大于0,则该数为2的幂次方。此方法利用了二进制表示中2的幂次方数的独特性质。

bool isPowerOfTwo(int n) {
if(n <= 0)
return false;
if( ( n & (n - 1) ) == 0 )
return true;
return false;
}
3260

被折叠的 条评论
为什么被折叠?