This is a creation in Article, where the information may have evolved or changed. The Fibonacci sequence, also known as the Golden Section, refers to a sequence of numbers: 1, 1, 2, 3, 5, 8, 13, 、...... In mathematics, the Fibonacci sequence is defined as a recursive method: F0=0,f1=1,fn=f (n-1) +f (n-2) (n>=2,n∈n*)
Recursive implementation
Package Mainimport "FMT" func Fibonacci (num int) int{if Num<2{return 1}return Fibonacci (num-1) + Fibonacci (num-2)}func Main () {for i: = 0; i<10; i++{nums: = Fibonacci (i) fmt. Println (Nums)}}
Closure implementation
Package Mainimport "FMT" func Fibonacci () func () int{a, B: = 0, 1return func () int{a, B = B, A+breturn a}}func main () {f: = Fibonacci () for I: = 0; I < 10; i++ {fmt. Println (f ())}}
Method 3 Channel Chanel
Package Mainimport ("FMT") func fib (n int, c Chan int) {b: =0,1for i:=0; i<n; i++{a,b = B,A+BC <-a}close (c)}func Mai N () {c: = Make (chan int,10) fib (Caps (c), c) for I:=range c{fmt. Println (i)}}
How to save the results of the calculation
Package Mainimport "FMT" var fibs [40]uint64func fib_function (n int) (res uint64) {if fibs[n]!=0{res = Fibs[n]return}if (n <=1) {res = 1}else{res = fib_function (n-1) +fib_function (n-2)}fibs[n] = Resreturn}func main () {fib_function (Ten) for I: = 0; I<10;i++{fmt. Println (Fibs[i])}}