闭包函数实现斐波那契数列
package main
import "fmt"
// 方式1:
func main() {
var g int
num := 3
func(i int) {
if num <= 2 {
g = 1
} else {
for m, n, j := 0, 1, 1; j < i; j++ {
g = m + n
m = n
n = g
}
}
}(num)
fmt.Printf("第 %d 个斐波那契数为:%d\n", num, g) // Passes argument 1000 to the function literal.
}
// 方式2:
func cloForFib(num int) int {
var g int
go func(num int) {
if num <= 2 {
g = 1
} else {
for m, n, j := 0, 1, 1; j < num; j++ {
g = m + n
m = n
n = g
}
}
}(num)
return g
}
func main() {
num := 10
g := cloForFib(num)
fmt.Printf("第 %d 个斐波那契数为:%d\n", num, g)
}
推荐文章: