为了账号安全,请及时绑定邮箱和手机立即绑定

在 Golang 中计算大指数

在 Golang 中计算大指数

Go
紫衣仙女 2021-10-04 17:17:38
我一直在尝试2^100用 Golang计算。我了解数字类型的限制并尝试使用math/big包。这是我尝试过的,但我不知道为什么它不起作用。我已经使用两种方法的幂计算来计算幂。package mainimport (    "fmt"    "math/big")func main() {    two := big.NewInt(2)    hundred := big.NewInt(50)    fmt.Printf("2 ** 100    is %d\n", ExpByPowOfTwo(two, hundred))}func ExpByPowOfTwo(base, power *big.Int) *big.Int {    result := big.NewInt(1)    zero := big.NewInt(0)    for power != zero {        if modBy2(power) != zero {            multiply(result, base)        }        power = divideBy2(power)        base = multiply(base, base)    }    return result}func modBy2(x *big.Int) *big.Int {    return big.NewInt(0).Mod(x, big.NewInt(2))}func divideBy2(x *big.Int) *big.Int {    return big.NewInt(0).Div(x, big.NewInt(2))}func multiply(x, y *big.Int) *big.Int {    return big.NewInt(0).Mul(x, y)}
查看完整描述

3 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

计算 2^100


package main


import (

    "fmt"

    "math/big"

)


func main() {

    n := big.NewInt(0)

    fmt.Println(n.SetBit(n, 100, 1))

}


查看完整回答
反对 回复 2021-10-04
  • 3 回答
  • 0 关注
  • 331 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信