Go语言 递归函数
Go语言 递归函数
引言
递归函数对于解决数学上的问题是非常有用的,比如计算阶乘,生成斐波那契数列等.
1. 什么是递归函数
2. 数字阶乘
3. 斐波那契数列(Fibonacci)
1. 什么是递归函数
- 递归,就是在运行的过程中调用自己
- 一个函数调用自己,就叫做递归函数
构成递归需具备的条件:
1 2 | 子问题须与原始问题为同样的事,且更为简单; 不能无限制地调用本身,须有个出口,化简为非递归状况处理。 |
2. 数字阶乘
- 阶乘是基斯顿·卡曼于 1808 年发明的运算符号,是数学术语
- 一个正整数的阶乘(factorial)是
所有小于及等于该数的正整数的积,并且0的阶乘为1
- 自然数n的阶乘写作
n!
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | package main import "fmt" func factorial(i int ) int { if i <= 1 { return 1 } return i * factorial(i-1) } func main() { var i int = 7 fmt.Printf( "Factorial of %d is %d\n" , i, factorial(i)) } //输出结果如下: Factorial of 7 is 5040 |
3. 斐波那契数列(Fibonacci)
这个数列从第3项开始,每一项都等于前两项之和。
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 32 | package main import "fmt" func fibonaci(i int ) int { if i == 0 { return 0 } if i == 1 { return 1 } return fibonaci(i-1) + fibonaci(i-2) } func main() { var i int for i = 0; i < 10; i++ { fmt.Printf( "%d\n" , fibonaci(i)) } } //输出结果如下: 0 1 1 2 3 5 8 13 21 34 |
自古英雄多磨难
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具