【愚公系列】2022 年 10 月 Go 教学课程 025- 递归函数
一、递归函数
如果一个函数在内部调用自身本身,这个函数就是递归函数。
递归函数的优点是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。
构成递归的条件:
子问题须与原始问题为同样的事,且更为简单
不能无限制地调用本身,须有个出口,化简为非递归状况处理
1.递归函数的基本使用
复制代码
3.相关案例
一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且 0 的阶乘为 1。自然数 n 的阶乘写作 n!。1808 年,基斯顿·卡曼引进这个表示法。亦即 n!=1×2×3×...×(n-1)×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。
复制代码
总结
递归就是一个函数在其内部可以调用其本身,那么这个函数就是递归函数即自己调用自己的函数
优点:结构清晰,可读性强,可以极大的减少代码量,用有限的语句来定义对象的无限集合。
缺点:效率低,调用栈可能会溢出:函数每次调用都会在内存栈中分配空间,而每个进程的容量是有限的,当调用的层次太多时,就会超出栈的容量,从而导致溢出。
版权声明: 本文为 InfoQ 作者【愚公搬代码】的原创文章。
原文链接:【http://xie.infoq.cn/article/11da923f534d93c9497d5d4f4】。文章转载请联系作者。
评论