版权声明:
尊重知识产权,严厉打击非法采集。
关于斐波那契数列的定义,我在之前写过的一篇《Javascript 输出斐波那契数列》中已详细描述过了,这里不再多说了。现在这里写的是Go语言输出斐波那契数列。
Golang官网已有给出斐波那契数列的例子,为什么我还要写一个呢?那么我们先看看官网的例子有什么问题吧。
package main
import "fmt"
func fib() func() int {
a, b := 0, 1
return func() int {
a, b = b, a+b
return a
}
}
func main() {
f := fib()
fmt.Println(f(), f(), f(), f(), f())
}
运行输出的结果是 (在线运行点这里)
1 1 2 3 5
发现了吗?输出的第一个数是 1 而不是 0,严格来说斐波那契数列应该从0开始,而不是从1开始。所以我写一个从0开始的。
package main
import "fmt"
func fib() func(int) int {
a, b := 0, 1
return func(i int) int {
if i > 0 {
a, b = b, a+b
}
return a
}
}
func main() {
f := fib()
for i := 0; i < 6; i++ {
fmt.Println(f(i))
}
}
运行输出的结果是 (在线运行点这里)
0 1 1 2 3 5
这才符合我的预期,一个从0开始的斐波那契数列。
$ welcome to hooyes.net
[INFO] ------------------------------o-
[INFO] Author : HOOYES
[INFO] Site : https://hooyes.net
[INFO] Page : https://hooyes.net/p/go-fibonacci
[INFO] Last build : 2023-07-31 09:16:20 +0000
[INFO] -0------------------------------
上一篇 幸存者的偏见
下一篇 推荐几个不错的Go语言Web框架