Go 打印斐波那契数列

关于斐波那契数列的定义,我在之前写过的一篇《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

本文原文地址为:
https://hooyes.net/p/go-fibonacci

发布了1 篇原创文章 · 获赞 1 · 访问量 930

猜你喜欢

转载自blog.csdn.net/hooyes/article/details/105665109