解题思路
题目链接,登录 LeetCode 后可用
题目要求是判断一个数是不是 2 的次方数,第一个思路就是跟判断一个数是不是 3 的次方数一样,不停的除 2。这里给出的是另一个思路的解法,只要判断一个数对应的 2 进制数的首位是否为 1,而其它所有位是否为 0 即可。
代码
class Solution {
public boolean isPowerOfTwo(int n) {
// if(n == 0) {
// return false;
// }
// 1000 & 0111 = 0000
return n > 0 && ((n & (n - 1)) == 0);
}
}
网友评论