网站大量收购闲置独家精品文档,联系QQ:2885784924

chap6+递归算法设计.ppt

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 递归程序设计举例 int reverse(int num,int len) { int restNum; int lowBit; if (len==1) //余数为0,作为递归的结束条件 return num; else{ lowBit=num%10;//保留最低位 restNum=num/10;//得到除去最低位后的余数 //递归调用,并形成逆置数 return lowBit*power(10,len-1) + reverse(restNum,len-1); } } num=1234 * 递归程序设计举例 例5. 输入n个整数,求最大数。 15 30 34 10 89 设函数findMax(n)为读取n个数,求最大值 函数Maximum(x,y)为求两个数x和y的最大值 则findMax(n)递归定义1: findMax(1)=N1 当 n值为1 findMax(n)=Maximum(findMax(n-1),Nn) 当n1 求前n(n1)个数的最大值,分解为3步: 第1步:读取前n-1个数,求出最大值max; 第2步:读取第n个数num; 第3步:返回num和max之间的最大值 * 递归程序设计举例 //读取n个数,求最大值 int findMax(int n) { int max;//记录前n-1个数中的最大值 int num;//读取的第n个值 if(n==1){//求前1个数中的最大值 scanf(%d,num); return num; } else{ max=findMax(n-1);//第1步:读取前n-1个数,求出最大值max ; scanf(%d,num);//第2步:读取第n个数num; return nummax?num:max; /*第3步:计算并返回num和 max之间的最大值*/ } } 15 30 34 10 89 * findMax(4) findMax(3), findMax(3) findMax(2), findMax(2) findMax(1) findMax(1) 读取第1个数15 15 30 34 10 返回15 返回30 返回34 返回34 main int findMax(int n) { int max,num; if(n==1){//求前1个数中的最大值 scanf(%d,num); return num; } else{ max=findMax(n-1); scanf(%d,num); return nummax?num:max; } } 读取第2个数30 读取第3个数34 读取第4个数10 * 调用 调用 ① ② ④ ③ * 例5. 输入n个整数,求最大数。 递归设计思路2:15 30 34 10 89 设函数findMax(n)为读取n个数,求最大值 函数Maximum(x,y)为求两个数x和y的最大值 则findMax(n)递归定义1: findMax(1)=N1 当 n值为1 findMax(n)=Maximum(N1,findMax(n-1)) 当n1 求前n(n1)个数的最大值,分解为3步: 第1步:读入第1个数num 第2步:调用递归函数,读取后续n-1个数,求最大数max 第3步:返回num和max中的最大值 * int findMax (int n) //求n个数的最大值 { int num, max; if (n==1){ scanf(%d,num); /*第1步:读入第一个数num */ return num; /*若是最后一个数,则将其本身作为最大值并返回*/ } else{ scanf(%d,num); /*第1步:读入第一个数num */ max=findMax (n-1); /*第2步:调用递归函数读取并求出后续n-1个 数的最大值max*/ return nummax?num:

文档评论(0)

xiaohuer + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档