递归算法在C_C++程序设计中的描述与实现.pdfVIP

递归算法在C_C++程序设计中的描述与实现.pdf

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
递归算法在C_C程序设计中的描述与实现,递归算法实现树形菜单,递归算法实现格雷码,递归算法,递归算法经典实例,汉诺塔递归算法,java递归算法,c递归算法,java递归算法例子,全排列递归算法

科技信息 计算机与网络 递归算法在C/C++程序设计巾昀描述与实坝 广州大学华软软件学院软件工程系 刘志伟 [摘要]递归是函数实现的一个很重要的环节,对许多复杂的问题,递归能提供简单、自然的解法。本文在对递归的概念进行介绍 的基础上,重点讨论了递归的程序设计方法,并分析了递归函数的调用和回溯过程。 [关键词]递归 函数调用 C/C++ 1.引言 的问题分解成规模较小的、易解决的同一问题。规模较小的问题又用同 递归是计算机科学中一种强有力的问题求解方法,用递归算法编 样的方法分解成规模更小的问题,并且小到一定程度可以直接得出它 写的程序结构清晰,具有很好的可读性,正确性容易验证。但由于递归 的解,从而得到原来问题的解。特别地,当规模N=I时,能直接得解。 的设计思想比较巧妙,特别是对于规模较大的问题,掌握递归算法的设 当一个问题存在上述构成递归的特征时,我们就可以考虑利用递 计分析和实现过程并非易事,因此,有必要对其进行深入探讨,分析其 归进行处理。由此我们分析适宜用递归求解问题的充要条件是:其一, 概念及设计方法和实现过程,以此加深对递归算法思想的进一步理解, 问题具有某种可借用的类同自身的子问题描述的性质;其二,某一有限 学会正确应用递归解决实际问题的方法。 步的子问题有直接的解存在。 2.递归的概念 当一个问题存在上述两个基本要素时,设计该问题递归算法的方 如果一个对象部分地由自己组成或者是根据自己定义的,则称这 法是: 个对象是递归的;在程序设计中,若一个过程直接地或间接地调用自身, (1)设计递归公式。即将一个问题化解为一个或多个子问题求解, 则称这个过程是递归的过程。在c,C++程序中,因为每次调用函数时, 且子问题和原问题具有相同的解法。例如,前面【例1】的n!可化解为n* C/C++语言都会为参数和局部变量分配新的存储区空间,因此函数调 (n一1)!,其中,子问题(n一1)!和n!的解法相同。 用它自身是可能的。这种类型的函数称为递归(recursive)函数。当函数(2)设计递归出口。即递归终止条件(边界条件)。递归最后一级的 调用它自身时,这个过程称为直接递归(directrecursion)。同样,函数能调用必须不能再进行递归,递归函数必须返回。不能无穷递归。 够调用第二个函数,反过来第二个函数也可以调用第一个函数。这种类 在通常情况下,递归调用都是要受到条件控制的,而且在被调用的 型的递归称为间接(indirect)递归。’ 过程中,会对调用条件进行有规律的修改,即每递归一次要使递归趋于 通常如下两种情况会用到递归: 结束,直到满足边界条件,返回边界值,结束递归;然后按照原来的路径 (1)问题的定义是递归的。 逐层返回,求出原问题的解。由此可知,递归算法设计的关键在于递归 许多数学上常用的概念是递归定义的。如阶乘函数的常见定义: 描述(递归公式)和递归终止条件。 1, 当n=0时 一般地,用递归方法进行“问题求解”时,具体需要依次进行下列三 nf_f “一In+fn一111。 当n≥1时 个步骤。 这种定义方法是用阶乘函数自身定义了阶乘函数。由于n!和(n一1)! (1)化解问题,求得算法 都是同一个问题的求解,因此可将n!用递归函数来描述。程序代码如 当问题化解成子问题后,有的可以写出一个迭代公式。如阶乘n!, 下: 可写迭代公式f(n)=n+“一1)。 【例1】用递归函数编程求n的阶乘n!。

文档评论(0)

tianma2015 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档