leetcode中的一个问题?
题目描述:
Given an integer, write a function to determine if it is a power of two.
也就是判断一个数是否是2的幂
我的代码如下:
class Solution {
public:
bool isPowerOfTwo(int n) {
if (n & (n - 1) == 0) {
return true;
}
else {
return false;
}
}
};
我的这段代码无法通过测试点:2
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在JS中, === 的优先级是10 , & 的优先级是9. 因此会先计算 === 然后计算 &,因此你的答案应该增加括号(括号的优先级最高,为20),使得先进行 & 运算,再进行 === 运算。
参考: https://developer.mozilla.org...
可能是运算符优先级的问题,试试:
是运算符优先级的问题:((n & n-1) == 0),但是你还没考虑n=0的情况。