递归算法在C语言项目实践中的应用.doc

递归算法在C语言项目实践中的应用.doc

ID:54976600

大小:15.50 KB

页数:6页

时间:2020-04-25

递归算法在C语言项目实践中的应用.doc_第1页
递归算法在C语言项目实践中的应用.doc_第2页
递归算法在C语言项目实践中的应用.doc_第3页
递归算法在C语言项目实践中的应用.doc_第4页
递归算法在C语言项目实践中的应用.doc_第5页
资源描述:

《递归算法在C语言项目实践中的应用.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、递归算法在C语言项目实践中的应用  摘要算法设计是计算机编程的核心,也是实施C语言项目实践的关键,算法的优劣及效率的高低决定了项目的性能和优劣。递归算法作为一种特殊的算法,其设计理念简洁而巧妙,其强大的自我调用能力,使得递归算法在进行项目实践和应用程序开发中得到广泛应用。本文通过C语言中常见的项目实践问题的分析求解,旨在理解递归算法的内部机制,探索递归算法的应用方法和技巧。  【关键词】递归算法C语言项目实践  递归是计算机编程中一个非常重要的设计思想,在程序设计语言中广泛应用。它是调用一个函数的过程

2、中又出现直接或者间接地调用该函数本身。这种算法十分另类却又非常有效,广泛应用于各种程序设计中,采用递归编写程序可以使程序变得简洁和清洗。  1递归思想  递归算法是C语言中经常使用的一种将复杂问题简单化的方法,其基本思想是通过递归调用,将原始比较复杂的大规模问题按照一定的要求进行分解,形成若干小问题,而这些小问题的求解方式和方法跟该问题的方式和方法相同,然后递归调用该子函数来表示问题的解。具体来说就是自身调用自身,通过若干步重复的简单运算来描述复杂问题。C语言中常常会遇到在调用一个函数时又要直接或间接

3、调用该函数本身的情况,这就是函数的递归调用,该函数被称为递归函数。递归调用是C语言的特点之一,C语言程序除了主函数之外均能够进行递归调用。函数在递归调用的过程中,调用函数又是被调用函数。递归函数执行时将会不断的调用自身。递归每调用一次就进入新的一层继续执行调用程序,如此反复地执行。递归算法使程序设计更加简洁明了以代替循环语句使用,且其使用效果比循环语句使用效果更好。  然而,对于递归算法的应用存在两方面需要注意的问题。一是递归算法中的参数设置和参数传递问题,包括形参和实参的对应关系,参数传递中的值传递

4、和地址传递等,这是函数调用中普遍存在的问题;二是递归调用的终止方式,递归函数的设计一定要避免无休止的反复调用其自身,否则容易进入死循环,出现意想不到的问题。为了避免无休止的反复调用,在函数内一定要设置结束递归调用的方法。如通过某种条件来的判断,满足某个条件就终止递归调用,然后逐层返回。  2项目任务描述  购票问题:最近电影院上映一部新的电影,距离电影开演的时间还有一个小时,售票工作正在紧张进行中。每张电影票的价格是50元,目前还有m+n个人在排队等待购票,其中有m个人拿的是面值为50元的钞票,另外n

5、个人拿的是面值为100元的钞票。假设开始售票的时候售票处没有零钱,那么这m+n个人排队购票,确保票处始终有零钱找的情况下,求不同排队的次序种数。  3项目分析  这是一个排列组合问题,假设有m个人手持50元面值的钞票,n个人手持100元面值的钞票时,使售票处不至于出现找不开钱的局面共有的方案总数用函数goupiao(m,n)来表示,那么存在三种情况:  3.1n=0的情况  也就是说排队购票的所有人手中拿的都是50元面值的钞票,那么这m个人的排队的方案总数为1,此时f(m,n)=1。  3.2m

6、情况  当m

7、n个人手持100元的钞票,那么在他之前m+n-1个人中应当有m个人手持50元的钞票,n-1个人手持100元的钞票,在这种情况下,确保始终有零钱找的方案数为goupiao(m,n-1)种。  根据以上分析,可以得出排队购票问题的递归函数的数学描述:  (1)  4排队购票C语言程序实现  根据前面分析所得出的排队购票问题的数学模型,如公式(1)所示。我们可以在C语言环境中得出该问题的具体程序如下:  intgoupiao(inti,intj)  {  inty;  if(j==0)y=1;/*终止条件,

8、第一种特殊情况*/  elseif(i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。