我想检查给定的数字是否是2的幂。我已经编写了代码,但我无法返回true或false,我认为某个地方存在无限循环。我只允许在代码上使用导入包中的函数。我不知道该怎么做才能纠正这个错误。如果你能帮助我,我会很高兴:)
package main
import (
"os"
"strconv"
)
func main() {
for len(os.Args) == 2 {
numbers, err := strconv.Atoi(os.Args[1])
if err != nil {
panic(err)
}
newnum := numbers
counts := 0
for numbers != 1 {
if newnum%2 != 0 {
} else {
newnum = newnum / 2
}
counts++
}
var x int = 2 ^ counts
if x == numbers {
return true
} else {
return false
}
}
}
`
Run Code Online (Sandbox Code Playgroud)