递归练习.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
递归练习.ppt

递 归 练习 第三十一次课 P1171:二分查找 可重复的全排列 假设是由1-3组成的3位数 program expl_dg; var a:array[1..10] of integer; procedure print; var i:integer; begin for i:=1 to 3 do write(a[i], ); writeln; end; procedure work(x:integer); var i:integer; begin if x3 then begin print ;exit;end; for i:=1 to 3 do begin a[x]:=i; work(x+1); end; end; begin work(1); end. 2008第三题 procedure f(a,b,c:integer); begin write(a,b,c,/); if (a=3)and(b=2)and(c=1) then exit; if (bc) then f(a,c,b) else if ab then if ac then f(c,a,b) else f(b,c,a); end; var a,b,c:integer; begin readln(a,b,c); f(a,b,c); end. 输入:1 3 2 * * program ex_search_1; var x,i,j,mid:integer; a:array[1..20] of integer; begin for i:=1 to 20 do begin a[i]:=i*2;write(a[i]:3);end; writeln; readln(x); i:=1;j:=20; while i=j do begin mid:=(i+j) div 2; if x=a[mid] then begin write(mid);exit;end else if xa[mid] then i:=mid+1 else j:=mid-1; end; write(-1); end. program ex_search_1; var x,i,j,mid:integer; a:array[1..20] of integer; function search(top,bot:integer):Integer; var mid:integer; begin if topbot then search:=-1 else begin mid:=(top+bot) div 2; if x=a[mid] then search:=mid else if xa[mid] then search:=search(top,mid-1) else search:=search(mid+1,bot) end end; begin for i:=1 to 20 do begin a[i]:=i;write(a[i]:3);end; writeln; readln(x); write(search(1,20)); end. program expl; var i,j,k:integer; begin for i:=1 to 3 do for j:=1 to 3 do for k:=1 to 3 do writeln(i, ,j, ,k); end. 如果是5位呢? 更多位呢? 不定位呢? 3 1 2 3 1 2 3 2 3 1 2 3 1 2 1 1 1 2 3 2 3 2 3 1 2 3 1 2 3 1 2 1 3 2 3 1 2 3 第一层 第二层 第三层 在第三层输出,无法回到第二层,第一层得到i的数据 用递归必须用全局变量数组,来记录每层的数据 试一试,如果n位,n6,如何改动? 如果要求输出不重复的全排列呢? program expl_dg; var a:array[1..10] of integer; n:integer; procedure print; var i:integer; begin for i:=1 to n do wr

文档评论(0)

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

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

1亿VIP精品文档

相关文档