小编Bil*_*ins的帖子

如何在 Golang 中使用 big.Int 进行加/乘?

我正在尝试编写一个返回斐波那契数列第 n 个数字的函数。从返回 int 到 big.Int 时我遇到了麻烦。

这是普通版本,仅使用矩阵求幂来查找斐波那契数列的第 n 个数。它工作得很好并返回我想要的值:

func normalFib(n int) int {
    if n == 0 || n == 1 {
        return n
    }
    n -= 2
    a, b, c := 1, 1, 0
    x, y := 1, 1

    var evenNum [3]int
    var oddNum [2]int
    for n > 0 {
        if n%2 == 0 {
            temp := []int{a*a + b*b, a*b + b*c, b*b + c*c}
            a, b, c = temp[0], temp[1], temp[2]
            copy(evenNum[:], temp)
            n /= …
Run Code Online (Sandbox Code Playgroud)

go

3
推荐指数
1
解决办法
5490
查看次数

标签 统计

go ×1