递归算法集合.docVIP

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

递归算法集合 1、利用递归原理求1+2+3+4+….+n的值 2、用递归法计算n!,用递归法计算n!可用下述公式表示: #includestdio.h int fun(int n) { if(n==0||n==1) return 1; else return n*fun(n-1); } void main() { int n; scanf(%d,n); printf(%d!=%d\n,n,fun(n)); } 3. 利用递归原理求数列s(n)=s(n-1)+s(n-2)的第n项。其中s(1)=s(2)=1。 思考题: 4、利用递归原理求杨辉三角 5、利用递归原理编写汉诺塔游戏。 汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古 老传说的益智玩具。大梵天创造世界的时候做了三根金刚石 柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘 。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在 另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根 柱子之间一次只能移动一个圆盘。 递归强化练习 [ 2007-10-26 20:05:00 | By: 小草 ] 下面很多题目,都可以用递归来解决的。试试看,也许对你有启发。 ----------------------------- 递归基础练习题: 1. 求1+2+3+……+n的值 2. 求1*2*3*……*n的值 3. 小猴子第一天摘下若干桃子,当即吃掉一半,又多吃一个.第二天早上又将剩下的桃子吃一半,又多吃一个.以后每天早上吃前一天剩下的一半另一个.到第10天早上猴子想再吃时发现,只剩下一个桃子了.问第一天猴子共摘多少个桃子? 4. 有雌雄一对兔子,假定过两个月便可繁殖雌雄各一的一对小兔子。问过n个月后共有多少对兔子? 5. 一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。这样他经过了七个村子后还剩两只鸭子,问他出发时共赶多少只鸭子?经过每个村子卖出多少只鸭子? 6. 著名的菲波拉契(Fibonacci)数列,其第一项为0,第二项为1,从第三项开始,其每一项都是前两项的和。编程求出该数列前N项数据。 7. 求两个数的最大公约数。 8. 求两个数的最小公倍数。 9. 输入一个数,求这个数的各位数字之和。 10. 角谷定理。输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。求经过多少次可得到自然数1。 如:输入22, 输出 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 STEP=16 11. 将十进制转换为二进制。 12. 计算M=max(a,b,c)/[max(a+b,b,c)*max(a,b,b+c)],其中a,b,c由键盘输入。 13. 梯有N阶,上楼可以一步上一阶,也可以一次上二阶。编一个程序,计算共有多少种不同的走法。 14. 某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封共有多少种不同情况? 15. 给出一棵二叉树的中序与后序排列。求出它的先序排列。 16. 求把一个整数n无序划分成k份互不相同的正整数之和的方法总数。 17. 已知一个一维数组A[1..N]。{N50} 又已知一整数M。如能使数组A中任意几个元素之和等于M,则输出YES,反之则为NO。 18. 要求找出具有下列性质的数的个数(包含输入的自然数n): 先输入一个自然数n(n=500),然后对此自然数按照如下方法进行处理: ①. 不作任何处理; ②. 在它的左边加上一个自然数,但该自然数不能超过原数首位数字的一半; ③. 加上数后,继续按此规则进行处理,直到不能再加自然数为止. 样例: 输入: 6 满足条件的数为 6 16 26 126 36 136 输出: 6 19. 用递归的方法求N个数中最大的数及其位置。 20. 写出折半查找的递归算法。 21. 快速排序法。 思考题 1、数学宝塔,从最顶上走到最底层,每次只能走到下一层的左边或右边的数字,求出使所走到的所有数字之和为60的途径。         7        4  6       6  9  3      6  3  7  1     2  5  3  2  8    5  9  4  7   3  2   6  4  1  8  5  6  3  3  9  7  6  8  4  1  5 2  5  7  3  5

文档评论(0)

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

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

1亿VIP精品文档

相关文档