小编eli*_*lia的帖子

golang 是 2 的幂

我想检查给定的数字是否是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)

math go

5
推荐指数
1
解决办法
2440
查看次数

标签 统计

go ×1

math ×1