斐波那契数的三种计算方式
直接for循环输出
package main func main(){ var a int = 0 var b int = 1 for i:=0;i<20;i++{ a = a + b println(a) b = a ^ b a = b ^ a b = a ^ b } }
递归函数调用
package main import "fmt" func main(){ for i := 0; i <20; i++ { fmt.Println(fb(i)) } } func fb(i int) int { if i <= 1{ return 1 } else { return fb(i - 2) + fb(i-1) } }
函数闭包
package main func main(){ f := bb() for i := 0; i < 10; i++{ println(f()) } } func bb() func() int{ n := 0 b := 1 return func() int { n = b +n b = n ^ b n = n ^ b b = n ^ b return n } }
总结:斐波那契数是以0和1为开头,不断累计的集合.