- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目 录
CS81:菲波那契数列 1
CS82:二叉树 3
CS83:逆波兰表达式 5
CS84:放苹果 6
CS85:红与黑 8
CS86:八皇后问题 10
CS87:木棍问题 15
CS88:城堡 18
CS89:分解因数 22
CS810:迷宫 24
CS811:算24 28
CS812:文件结构“图” 30
CS813:小游戏(未做) 34
CS814:碎纸机 35
CS815:棋盘分割 39
CS816:棋盘问题 42
CS817:猴子吃桃 44
CS818:最大公约数 45
CS819:经典的Hanoi(汉诺塔)问题 47
CS820:练习题 49
CS821:另一个Fibonacci数列 50
CS822:分形(Fractal) 51
CS823:欧几里德游戏(Euclid’s Game)(未做) 54
CS824:幸存者游戏(Recursive Survival) (未做) 55
CS825:抽签(Lot) (未做) 55
CS826:骨头的诱惑(Tempter of the Bone) 56
CS827:图形周长(Image Perimeters) 59
CS828:礼物(Gift) 60
CS829:火力配置网络(Fire Net) 60
CS830:素数环问题(Prime Ring Problem) 61
CS831:保险箱解密高手(Safecracker) 61
CS832:方形硬币(Square Coins) 62
CS833:求和(Sum It Up) 62
CS834:正方形(Square) 63
CS835:字母排列(Anagram)(未做) 66
CS836:抽奖游戏(Lotto)(未做) 66
CS837:分配大理石(Dividing)(未做) 67
《算法与程序实践2》习 题 解 答8——递归
让我们来看看计算n的阶乘的计算机程序的写法。在数学上,求n的阶乘,有两种表示方法:
(1)n!=n*(n-1)*(n-2)*…*2*1
(2)n!=n*(n-1)! (0!=1)
这两种表示方法实际上对应到两种不同的算法思想。
在第(1)种表示方法中,求n!要反复把1、2、3、…、(n-2)、(n-1)和n累乘起来,是循环的思想,很直接地我们会用一个循环语句将n以下的数都乘起来:
int n,m = 1;
for(int i = 2; i = n; i++) m *= i;
printf(“%d 的阶乘是%d\n”, n, m);
在第(2)种表示方法中,求n!时需要用到(n-1)!,所以可以用下面的方法来求n的阶乘:
int factorial(int n){
if(n = 0) return(-1);
if(n == 1) return 1;
else return n*factorial(n - 1);
}
上面这两种实现方式体现了两种不同的解决问题的思想方法。第一种通过一个循环语句来计算阶乘,其前提是了解阶乘的计算过程,并用语句把这个计算过程模拟出来。第二种解决问题的思想是不直接找到计算n的阶乘的方法,而是试图找到n 的阶乘和n-1 的阶乘的递推关系,通过这种递推关系把原来问题缩小成一个更小规模的同类问题,并延续这一缩小规模的过程,直到在某一规模上,问题的解是已知的。这样一种解决问题的思想我们称为递归的思想。
递归方法的总体思想是将待求解问题的解看作输入变量x的函数f(x),通过寻找函数g,使得f(x) = g(f(x-1)),并且已知f(0)的值,就可以通过f(0)和g求出f(x)的值。这样一个思想也可以推广到多个输入变量x,y,z等,x-1也可以推广到x - x1,只要递归朝着出口的方向走就可以了。
用递归的方法可以求解具有递推关系的问题,此外,还可以广泛应用在搜索领域和排列组合领域。
第一次讲课:CS817/CS818/CS819/CS821/CS822 练习:CS820
第二次讲课:CS81/CS82/CS83/CS84 练习:CS85/CS88/CS89
CS81:菲波那契数列
(来源:poj.grids.cn 2753,程序设计导引及在线实践(李文新)例9.2 P198)
问题描述:
菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。
给出一个正整数a,要求菲波那契数列中第a个数是多少。
输入:
第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1 = a = 20)。
输出:
输出有n行,每行输出对应一个输入。输出应是一个正整数,为菲波那契数列中第a个数的大小。
样例输入:
4
5
2
19
1
样例输出:
5
1
4181
1
解
您可能关注的文档
- 医疗集团网络咨询培训资料概论.doc
- 弦论小史_二_李淼讲述.pdf
- 软件设计流程与编写规范.doc
- 第八章 科学合理控制面粉颗粒度.doc
- 英雄无敌5东方部落控制台摘要.doc
- 质量管理员质量管理体系部分与答案.doc
- 巧用“碎片”拼美图指南.doc
- Ubuntu系统的Shell命令与脚本编程.doc
- ECMAScript 的历史与发展.doc
- 第3章 继承和多态.ppt
- 2025至2030中国移动治疗台行业发展研究与产业战略规划分析评估报告.docx
- 2025至2030链激酶行业细分市场及应用领域与趋势展望研究报告.docx
- 2025至2030爆炸物探测扫描仪行业市场占有率及有效策略与实施路径评估报告.docx
- 2025至2030四川省智能制造行业细分市场及应用领域与趋势展望研究报告.docx
- 2026届高三二轮复习试题政治大单元突破练1生产资料所有制与分配制度含解析.docx
- 2026届高三二轮复习试题政治大单元突破练16哲学基本思想与辩证唯物论含解析.docx
- 2026届高三二轮复习试题政治大单元突破练2社会主义市场经济体制含解析.docx
- 浙江省衢州市五校联盟2025-2026学年高二上学期期中联考技术试题-高中信息技术含解析.docx
- 浙江省金丽衢十二校2026届高三上学期11月联考政治试题含解析.docx
- 2026届高三二轮复习试题政治大单元突破练7领导力量:中国共产党的领导含解析.docx
原创力文档


文档评论(0)