package main import ( "fmt" ) func fibonacci(n int) (r int) { if n <= 2 { return 1 } return fibonacci(n-1) + fibonacci(n-2) } func main() { for i := 0; i < 10; i++ { fmt.Printf("%d, ", fibonacci(i)) } }得到结果:
1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,斐波拉契数列的递归实现优化
package main import ( "fmt" ) func advanceFibonacii(n int) (r int) { if n <= 2 { return 1 } result := 1 for i := 2; n > i; n-- { result += advanceFibonacii(n - 2) } return result } func main() { for i := 0; i < 10; i++ { fmt.Printf("%d, ", advanceFibonacii(i)) } }得到结果
1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,斐波那契数列的应用
8.斐波那契螺旋形的摇椅