Go中的大整数范围

huangapple go评论85阅读模式
英文:

Big int ranges in Go

问题

在Go语言中,可以使用for循环来遍历两个大整数值x和y之间的区间。代码如下:

for i := x; i < y; i++ {
    // 做一些操作
}

请注意,这里的x和y是大整数类型。如果你需要使用大整数类型,可以参考这里的Go语言官方文档。

英文:

Is there a way to loop over intervals between two big int values, x and y, in Go?

for i: = x; i &lt; y; i++ {
    // do something
}

答案1

得分: 8

使用大数进行计算可能有些笨拙,因为你需要为常量创建一个big.Int。除此之外,将for语句的每个部分替换为处理大整数的部分是一种直接的替换。

package main

import (
	"fmt"
	"math/big"
)

var one = big.NewInt(1)

func main() {
	start := big.NewInt(1)
	end := big.NewInt(5)
	// i必须是一个新的big.Int,这样它就不会覆盖start
	for i := new(big.Int).Set(start); i.Cmp(end) < 0; i.Add(i, one) {
		fmt.Println(i)
	}
}

链接:http://play.golang.org/p/pLSd8yf9Lz

英文:

Working with big numbers can be kind of clunky because you need to create a big.Int for constants. Other than that, it is a straight forward replacement of each segment of the for statement to one made to deal with big ints.

http://play.golang.org/p/pLSd8yf9Lz

package main

import (
	&quot;fmt&quot;
	&quot;math/big&quot;
)

var one = big.NewInt(1)

func main() {
	start := big.NewInt(1)
	end := big.NewInt(5)
    // i must be a new int so that it does not overwrite start
	for i := new(big.Int).Set(start); i.Cmp(end) &lt; 0; i.Add(i, one) {
		fmt.Println(i)
	}
}

huangapple
  • 本文由 发表于 2015年4月29日 05:45:04
  • 转载请务必保留本文链接:https://go.coder-hub.com/29930501.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定