第一种方法
直接上代码:
package main
import "fmt"
func main() {
result := 0
for i := 0; i <= 10; i++ {
result = fibonacci(i)
fmt.Printf("fibonacci(%d) is: %d\n", i, result)
}
}
func fibonacci(n int) (res int) {
if n <= 1 {
res = 1
} else {
res = fibonacci(n-1) + fibonacci(n-2)
}
return
}
解析
经典的递归函数算法实现
运行结果

第二种方法
直接上代码:
package main
import "fmt"
func main() {
f := fibonacci();
for i:= 1; i<=10; i++ {
fmt.Printf("fibonacci(%d) is: %d\n", i, f())
}
}
func fibonacci() func() int {
x := 0
y := 1
return func() int {
x,y = y,x+y
return y
}
}
解析
使用闭包,函数作为返回值的算法实现
运行结果

总结
条条大路通罗马,斐波那契数列你不仅仅可以用递归实现。
本文深入探讨了使用Golang实现斐波那契数列的两种方法:一是传统的递归算法,二是创新的闭包实现。通过代码示例详细解析了每种方法的运行原理及结果,为读者提供了丰富的学习资源。
679

被折叠的 条评论
为什么被折叠?



