斐波那契数的三种计算方式

直接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为开头,不断累计的集合.

猜你喜欢

转载自www.cnblogs.com/hardykay/p/13394656.html
今日推荐