方法一
package main
import "fmt"
func main() {
result := 0
for i := 1; i <= 10; i++ {
result = fibonacci(i)
fmt.Printf("fibonacci(%d) is: %d\n", i, result)
}
}
func fibonacci(n int) (res int) {
if n <= 2 {
res = 1
} else {
res = fibonacci(n-1) + fibonacci(n-2)
}
return
}
方法二
package main
import "fmt"
// 1, 1, 2, 3, 5, 8, 13, ...
func Fibonacci() func() int {
a, b := 0, 1
return func() int {
a, b = b, a+b
return a
}
}
func main() {
aa := Fibonacci()
fmt.Println(aa())
fmt.Println(aa())
fmt.Println(aa())
fmt.Println(aa())
}