问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

递归是什么意思?90

发布网友 发布时间:2024-03-04 06:47

我来回答

5个回答

热心网友 时间:2024-08-11 11:04

程序调用自身的编程技巧称为递归( recursion)。

构成递归需具备的条件有:

1、子问题须与原始问题为同样的事,且更为简单。

2、不能无限制地调用本身,须有个出口,化简为非递归状况处理。

递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。

扩展资料:

递归一般用于解决三类问题:

1、数据的定义是按递归定义的。(Fibonacci函数,n的阶乘)

2、问题解法按递归实现。(回溯)

3、数据的结构形式是按递归定义的。(二叉树的遍历,图的搜索)

递归的缺点:

递归解题相对常用的算法如普通循环等,运行效率较低。因此,应该尽量避免使用递归,除非没有更好的算法或者某种特定情况,递归更为适合的时候。在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储,因此递归次数过多容易造成栈溢出。

参考资料来源:百度百科-递归

热心网友 时间:2024-08-11 11:03

递归 就是 函数掉用自己或间接的调用自己

热心网友 时间:2024-08-11 11:00

递归算法就是一个函数通过不断对自己的调用而求得最终结果的一种思维巧妙但是开销很大的算法。

热心网友 时间:2024-08-11 10:58

递归是一种重要的编程技术。该方法用于让一个函数从其内部调用其自身。一个示例就是计算阶乘。0 的阶乘被特别地定义为 1。 更大数的阶乘是通过计算 1 * 2 * ...来求得的,每次增加 1,直至达到要计算其阶乘的那个数。

下面的段落是用文字定义的计算阶乘的一个函数。

“如果这个数小于零,则拒绝接收。如果不是一个整数,则将其向下舍入为相邻的整数。如果这个数为 0,则其阶乘为 1。如果这个数大于 0,则将其与相邻较小的数的阶乘相乘。”

要计算任何大于 0 的数的阶乘,至少需要计算一个其他数的阶乘。用来实现这个功能的函数就是已经位于其中的函数;该函数在执行当前的这个数之前,必须调用它本身来计算相邻的较小数的阶乘。这就是一个递归示例。

递归和迭代(循环)是密切相关的 — 能用递归处理的算法也都可以采用迭代,反之亦然。确定的算法通常可以用几种方法实现,您只需选择最自然贴切的方法,或者您觉得用起来最轻松的一种即可。

显然,这样有可能会出现问题。可以很容易地创建一个递归函数,但该函数不能得到一个确定的结果,并且不能达到一个终点。这样的递归将导致计算机执行一个“无限”循环。下面就是一个示例:在计算阶乘的文字描述中遗漏了第一条规则(对负数的处理) ,并试图计算任何负数的阶乘。这将导致失败,因为按顺序计算 -24 的阶乘时,首先不得不计算 -25 的阶乘;然而这样又不得不计算 -26 的阶乘;如此继续。很明显,这样永远也不会到达一个终止点。

因此在设计递归函数时应特别仔细。如果怀疑其中存在着无限递归的可能,则可以让该函数记录它调用自身的次数。如果该函数调用自身的次数太多,即使您已决定了它应调用多少次,就自动退出。

下面仍然是阶乘函数,这次是用 JScript 代码编写的。

// 计算阶乘的函数。如果传递了
// 无效的数值(例如小于零),
// 将返回 -1,表明发生了错误。若数值有效,
// 把数值转换为最相近的整数,并
// 返回阶乘。
function factorial(aNumber) {
aNumber = Math.floor(aNumber); // 如果这个数不是一个整数,则向下舍入。
if (aNumber < 0) { // 如果这个数小于 0,拒绝接收。
return -1;
}
if (aNumber == 0) { // 如果为 0,则其阶乘为 1。
return 1;
}
else return (aNumber * factorial(aNumber - 1)); // 否则,递归直至完成。
}

热心网友 时间:2024-08-11 10:58

就是自己调用自己. 比如我们定义阶乘: N的阶乘等于N乘以(N-1)的阶乘. 这里在 "N阶乘" 的定义里用到了 "(N-1)阶乘", 用阶乘来定义阶乘, 就是递归了
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
笔记本wifi能够联网,但是台式机插网线网络很差 为什么这个wifi就针对一台电脑卡。 电脑连wifi看电视很卡台式电脑连接无线wifi特别卡 为什么本身台式网速特别快,可是用笔记本wifi的网速就特别慢呢... wifi很快电脑很慢是怎么回事电脑和手机连接同一个WiFi手机网速快但是... ...6个梨,要把这些梨全部放在盘子里,至少需要多少个盘子? 看图列算式,一共有多少个梨? 列式:__ 哪些原因会导致长白头发 头上白发特别多是体内缺什么呢还是病还是别的原因 ACL访问控制列表应用 收录机能否改制成输入MP3的扩音机 ...成音响,就是将MP3或MP4插上后能把它当成扬声器来听歌?如果可以... 大家有谁听说过日本语与陕西方言的联系? 印花税分类及税率 计算机在运行递归程序时,要用到桟结构?还是用到别的结构? 递归是什么意思?41 计算机中的递归思想4 索尼相机RX100M6拍出的照片质量怎么样? 索尼RX100M6的连拍效果如何? 索尼相机RX100M6能拍视频吗?拍出来清不清晰? 索尼RX100M6的快速连拍功能怎么样? 索尼RX100M6的快速连拍功能怎么样? 索尼RX100M6的眼部对焦效果好吗? 索尼相机RX100M6怎么样?适合旅拍吗? 索尼RX100M6的眼部对焦效果如何? 索尼RX100 M6好用吗 “递归”在计算机和软件中都有什么含义? ...播放的时候无法自动播放连音乐也没有了!!怎么办,在线等!求救!!_百... WPS做的幻灯片在微软播不出来。。怎么办??? LED筒灯的产品优点 谁能够解释一下递归的本质!以及如何使用递归!28 请解释这个程序为什么用递归方法? 求大佬解释这个递归函数运行到最后一步不满足if条件时为是如何...1 解释一下DNS的递归解析是什么含义?15 刚买一台收录机,可不可以把MP3连接到上面,把收录机当做喇叭用? 如何把国旗放在微信头像随意位置 微信头像用国旗可以吗 国旗可以做微信头像吗 在正方体中,如何与体对角线构成直角三角形? 正方体内连接顶点形成为什么构成直角三角形 建设工程经竣工验收不合格的怎么处理 工程竣工验收不合格应采取什么措施 ...温度为什么要用集成温度传感器?它比用水银温度计有什么优点?_百度... 比较二者相同区间的温度特性,集成温度传感器线性优于温敏二极管的原因... 饭扫光280g的多少钱一瓶,为什么我在不同超市买的不一样呢? 解脲支原体阳性,表皮葡萄菌体,服用莫西沙星出现尿频膀胱酸胀,阴道酸痛... 微信收款码被别人拿去有什么风险? 地质普查的地质图 ...土拨鼠Marmot户外品牌第一次听说,算什么档次的为何不知名?_百度... 为何处于高原环境中,有的人会有高原反应?