斐波那契数列(Fibonacci sequence)指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........
这个数列从第3项开始,每一项都等于前两项之和。有趣的是,随着数列项数的增加,前一项与后一项之比越来越逼近黄金分割的数值0.6180339887...
1÷1=1,1÷2=0.5,2÷3=0.666..., 3÷5=0.6,5÷8=0.625...,55÷89=0.617977..., 144÷233=0.618025......46368÷75025=0.6180339886...
斐波那契数列的定义者,是意大利数学家列昂纳多·斐波那契(Leonardo Fibonacci), 斐波那契数列中的斐波那契数会经常出现在我们的眼前——比如松果、凤梨、树叶的排列、某些花朵的花瓣数(典型的有向日葵花瓣),蜂巢,蜻蜓翅膀
今天我们用Golang实现一下斐波那契数列
package mainimport "fmt"// 斐波那契函数func fibonacci() func() int { a := 1 b := 1 c := 1 loop := 0 return func() int { loop += 1 if (loop < 3) { return a } a = b b = c c = b + a return c }}func main() { f := fibonacci() for i := 0; i < 10; i++ { fmt.Println(f()) }}
go run main.go
输出:
1
1
2
3
5
8
13
21
34
55