前言:递归,就是在运行的过程中调用自己。一个函数调用自己,就叫做递归函数。 构成递归需具备的条件: 1、子问题须与原始问题为同样的事,且更为简单。 2、不能无限制地调用本身,须有个出口,化简为非递归状况处理。 Go编程语言支持递归,即函数调用函数本身。在使用递归时,需要谨慎确定函数的退
递归,就是在运行的过程中调用自己。一个函数调用自己,就叫做递归函数。
构成递归需具备的条件:
1、子问题须与原始问题为同样的事,且更为简单。
2、不能无限制地调用本身,须有个出口,化简为非递归状况处理。
Go编程语言支持递归,即函数调用函数本身。在使用递归时,需要谨慎确定函数的退出条件,否则会造成无限循环。
递归函数可以解决许多数学问题,如计算给定数字阶乘、产生斐波系列等。
数字阶乘
一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。
亦即n!=1×2×3×…×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。
使用一个递归函数由给定数计算阶乘,实例如下:
package main
import "fmt"
func factorial(i int) int {
if i <= 1 {
return 1
}
return i * factorial(i-1)
}
func main() {
var i int = 9
fmt.Printf("Factorial of %d is %d\n", i, factorial(i))
}
斐波那契数列(Fibonacci)
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……
这个数列从第3项开始,每一项都等于前两项之和。
使用一个递归函数由给定的一个数产生斐波那契数列,实例如下:
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))
}
}
老男孩教育专注Linux云计算运维工程师、Python全栈+人工智能、Python自动化运维开发、网络安全、数据分析、MySQL DBA开发、K8S微服务、Go语言等互联网课程的培训。欢迎对it行业感兴趣的朋友们来公司考察及学习。
文章出自:http://qh.itpxw.cn/peixun/it/2022102978.html
文章标题:Go语言中什么是递归函数?老男孩Golang培训班
免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉
老男孩教育 访问该机构站点 报名留言 加为好友 用户等级:高级会员
用户级别:0
机构名称:老男孩教育
联 系 人:任女士
联系电话:18710030740
联系手机:18710030740
在线客服:
在 线 QQ:
电子邮件:768386696@qq.com
网站域名:https://www.oldboyedu.com/
注册时间:2019-03-20 15:03
最后登录:2023-02-02 13:02
有不少想要”学Web前端开发”的小伙伴在选择学习方式的时候犹...
Java语言一直处于所有编程语言头部排名位置,因此更多的同学...
都知道Java好,但并不是所有人都能学好Java用好Java,那么想要学...
现如今有不少的同学都开始转头开始”学习UI设计”,想学习无...