本小节主要学习一种自己嵌套自己的函数调用方法——递归调用
例如,在给定整数n的情况下,计算并输入阶乘n!的程序。
阶乘函数的定义:
这个函数思想:使用了一个循环将1到n的数值依次相乘进行计算,并将得到的乘积作为结果返回。
用for循环解决问题
递归思想求解函数阶乘
其实换一个角度在思考这个问题,n!可以看成 n*(n-1)!的乘积, 而(n-1)!又可以看作是(n-1)*(n-2)!的乘积….. 以此类推到 2 * 1 , 代码是不是更简洁一点呢?
其实,像这种在一个函数的定义中调用自身的情况被称为–递归调用
例如定义的函数:
如果传入给函数factorial() 的n是5:
factorial(5) = 5 * factorial (4)
= 5 * 4 * factorial (3)
= 5 * 4 * 3 * factorial(2)
= 5 * 4 * 3 * 2 * factorial(1)
= 5 * 4 * 3 * 2 * 1
像这种返回一个包含本身函数的递归调用的这种递归设计,被称为投递归。
与头递归相对应的就是尾递归,尾递归的思想实现如下:
同样也拿 n=5, 来了解一下程序的实现细节:
小伙伴没有发现,尾递归的实现中,每一次函数递归调用都会将一个阶段性的结果传递到下一次被调用的函数中,当最终的一般终止条件满足时,把最终结果直接返回。
本文由知识库于2021-09-27发表在龙哥云资源网,如有疑问,请联系我们。本文链接:https://www.longgeyun.com/knowledge/5771.html
上一篇mozilla是什么浏览器可以卸载吗(不受国内限制的浏览器)
下一篇支付宝积分兑换15元天猫超市卡
高校最常见的食物中毒有哪些
急性肠胃炎与食物中毒怎么分辨
莫代尔面料和纯棉面料哪个好内裤 哪个儿童可以穿
为什么说开速腾的都不是一般人 速腾开出去有面子吗
活珠子和毛蛋的区别在哪里 哪个好吃
家里放石头的八大禁忌有哪些 家中石头最佳摆放位置
怎么判断自己帅还是丑男 男生怎样越长越帅
单身女生红绳戴左手还是右手 女生红绳戴哪里合适
Pr2020零基础快速入门
文字转语音App最新版3.0
APP下载页源码-带后台