LeetCode231. 2的幂Golang版
1. 问题描述
给定一个整数,编写一个函数来判断它是否是 2 的幂次方。
示例 1:
输入: 1
输出: true
解释: 20 = 1
示例 2:
输入: 16
输出: true
解释: 24 = 16
示例 3:
输入: 218
输出: false
2. 思路
2.1 思路1
暴力求,除留余数法,不断判断n是否为2的倍数
2.2 思路2
位运算
- n > 0
- n & (n-1) == 0 ? true: false
3. 代码
3.1. 思路1代码
func isPowerOfTwo(n int) bool {
if n == 0 {
return false
}
if n == 1 {
return true
}
for n != 1 {
pop := n % 2
if pop != 0 {
return false
}
n /= 2
}
return true
}
3.2. 思路2代码
func isPowerOfTwo(n int) bool {
if n <= 0 {
return false
}
if n & (n-1) == 0 {
return true
}
return false
}
本文介绍了两种判断一个整数是否为2的幂的方法:一种是通过不断除以2的暴力求解法;另一种是利用位运算技巧快速得出答案。文中提供了Go语言实现的示例代码。
197

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



