golang 的 math/big 进行
进行高进度运算的时候unint64已经无法满足需求,这个时候大家可以采用math.big库来进行高进度计算,下面以计算第10000位的菲波纳切数来展示big的用法,代码如下:package main
import (
"fmt" "math/big"
"time"
)
const LIM = 10000 //求第10000位的费布拉切数
var fibs *big.Int //使用数组保存计算出来的费布拉切数的指针
func main() {
result := big.NewInt(0)
start := time.Now()
for i := 0; i < LIM; i++ {
result = fibonacci(i)
if i == LIM-1 {
fmt.Printf("fibonacci(%d) is: %d\n", i, result)
}
}
fmt.Println(result)
fmt.Printf("%T\n", result)
end := time.Now()
delta := end.Sub(start)
fmt.Printf("longCalculation took this amount of time: %s\n", delta)
}
func fibonacci(n int) (res *big.Int) {
if n
页:
[1]