题目: 给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。
如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。
来源:力扣(LeetCode) 链接:leetcode-cn.com/problems/po… 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解法:
方法一:暴力法
func isPowerOfTwo(n int) bool {
if n <= 0 {
return false
}
for n > 1 {
if n % 2 != 0 {
return false
}
n = n / 2
}
return true
}
*方法二:位运算 *
符合条件的n的二进制表示只有一个1
func isPowerOfTwo(n int) bool {
return n > 0 && (n & (n - 1) == 0)
}