題目
描述
用 O(1) 時間檢測整數 n 是否是 2 的冪次。
樣例
n=4
,返回 true
;
n=5
,返回 false
.
解答
思路
- 大于零。
- 2的整數冪次的二進制表示都是0...010...0,其減1后二進制表示為0...001...1,兩個數按位取且(&)等于零。
代碼
class Solution {
/*
* @param n: An integer
* @return: True or false
*/
public boolean checkPowerOf2(int n) {
// write your code here
return (n>0)&&((n&(n-1))==0);
}
};