noip讲义5-递归法(小学程度).ppt

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

递归过程 当一个问题可以不断的通过一种有规律的增加或递减转化为一个新问题,而解决新问题的方法和原问题相同时,可以考虑过程的递归调用,注意这种“不断的增加或递减”是有尽头的。 递归过程分析—数字倒序 例5、由m个A,n个B组成若干个排列。从某个排列的位置1开始数,数到任意位置时都能保证A的个数不少于B的个数,则称该排列为合理排列。 例如:当m=2,n=2时排列有 AABB(合理)ABAB(合理) ABBA(不合理) BBAA(不合理) 合理排列数有2种 输入:只有一行两个整数m,n(1≤n≤m≤12) (用空格分隔) 输出:一个整数(所有的合理排列数) 【样例】 输入 输出 3 2 5 分析:模拟排队的情况,从第1个人开始,第1 人只能是A,第2个可以是A也可以是B,再其后的人要保证任意位置时都能保证A的个数不少于B的个数,递归求有多少个排列。 Var m,n,t:LongInt; Procedure pd(i,j:LongInt); Begin If (i=m) And (j=nThen t:=t+1{已生成一种排列} Else Begin If i<m Then pd(i+1,j);{增加1个A} If (j<n) And (j<i) Then pd(i,j+1); End; {增加1个B} End; Begin t:=0; Read(m,n);pd(1,0);Writeln(t); End. var n:integer; procedure hanoi(n:integer;x,y,z:char); begin  if n=1 then writeln(x, ‘->’,n, ‘->’,z)  else begin    hanoi(n-1,x,z,y);    writeln(x, ‘->’,n, ‘->’,z);    hanoi(n-1,y,x,z) end end; begin    {主程序) readln(n); hanoi(n,‘A’,‘B’,‘C’) end. var i,n,k:integer; a:array[1..10] of integer; count:longint; procedure perm(k:integer); var j,p,t:integer; begin if( )then begin ( ); for p:=1 to k do write(a[p]:1); write(' '); if( )then writeln; exit; end; for j:=k to n do begin t:=a[k]; a[k]:=a[j]; a[j]:=t; perm(k+1) ; t:=a[k];( ) end end; begin writeln('Entry n:'); read(n); count:=0; for i:=1 to n do a[i]:=i; ( ) end. perm(1) K=n inc(count) count mod 5=0 a[k]:=a[j]; a[j]:=t ; 123 123 123 132 123 132 213 213 213 231 231 321 321 321 312 312 例3、2的幂次方表示(98年复赛) 任何一个正整数都可以用2的幂次方表示。 例如:137=27+23+20 同时约定次方用括号来表示,即ab可表示为a (b)。 由此可知,137可表示为:2 (7)+2 (3)+2 (0) 进一步:7=22+2+20 (21用2表示) 3=2+20 所以最后137可表示为:2(2(2)+2+2(0))+2(2+2(0))+2(0) 又如:1315=210+28+25+2+20 所以1315最后可表示为: 2(2(2+2(0))+2)+2(2(2+2(0)))+

文档评论(0)

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

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

1亿VIP精品文档

相关文档