04-递归函数

@

1. 概念

当一个函数在其函数体内调用自身,则称之为递归。

注意:递归必须接近边界值,否则将无限循环下去

2. 示例(阶乘)

package main
import "fmt"
func Factorial(n uint64)(result uint64) {
if (n > 0) {
result = n * Factorial(n-1)
return result
}
return 1
}
func main() {
var i int = 15
fmt.Printf("%d 的阶乘是 %d\n", i, Factorial(uint64(i)))
}

说明:
如果返回值不定义为变量 result,则函数中的变量 result需要初始化,可写成:

func Factorial(n uint64) uint64 {
if (n > 0) {
result := n * Factorial(n-1)
return result
}
return 1
}

结果输出

[root@liubei go-test]# go run test.go
15 的阶乘是 130767368000

3. 示例(斐波那契序列)

说明:定义一个名为fibonacci的函数,当n小于2时返回本身,当n大于等于2时,返回前边两个数的和。(其中前边两个数的和调用了该函数本身)

  • 代码
package main
import "fmt"
func fibonacci(n int) int {
if n < 2 {
return n
}
return fibonacci(n-2) + fibonacci(n-1)
}
func main() {
var i int
for i = 1; i <= 10; i++ {
fmt.Printf("%d\t", fibonacci(i))
}
fmt.Printf( "\n" )
}
  • 结果
1 1 2 3 5 8 13 21 34 55

posted on   运维开发玄德公  阅读(29)  评论(0编辑  收藏  举报  

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示