我正在尝试编写一个返回斐波那契数列第 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 ×1