- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]各类算法精选2
移盘子问题从左向右依次安放 3 根细柱 A,B,C. 在 A 上套有 N (N≤20) 个直径相同的圆盘, 从下到上依次编为1,2,,,,,N, 将这些圆盘经过 B 单向地移入 C (即不允许从右向左移动). 圆盘可在 B 中暂存. 从键盘输入 N, 问将圆盘全部移入C后,在C柱上共有多少种排列方式?? ? ?? ?? ?? ?? ?┃ ? ?? ┃ ? ?? ┃ ? ?? ? ? ? ?? ?? ?1 ? ━╋━ ? ?┃ ? ?? ┃ ? ?? ?? ? ?? ?? ?2 ? ━╋━ ? ?┃ ? ?? ┃ ? ?? ?? ?? ? ? ? ?? ?? ?3 ? ━╋━ ? ?┃ ? ?? ┃ ? ?? ?? ? ? ? ?? ?? ?4 ? ━╋━ ? ?┃ ? ?? ┃ ? ?? ?? ?? ?? ? ? ?? ?? ?? ━━┻━━━┻━━━┻━ ? ?? ? ?? ?? ?? ?? ? A ? ?? ?B ? ?? ?C ? ?? ?
program lxw007; ? type row=array[1..100] of shortint;? var b,c,d: row;? ? ? i,j,j1,j2,m,n,n2: integer;? ? ? s,sum,t,pa,pb,pc:integer;procedure prt2(u:shortint);begin? if u=1 then? ? begin? ? ? inc(pa); inc(pb); b[pb]:=pa;? ? ? write(A(,pa:2,)=B(,pb:2,) ?);? ? end? else? ? begin? ? ? inc(pc); c[pc]:=b[pb];? ? ? write(B(,pb:2,)=C(,pc:2,) ?);? ? ? dec(pb);? ? endend;procedure perm(n:integer; var p:row; var i:integer);var j,j1,j2,t,m:integer;begin? i:=n;? repeat ?dec(i) ?until (p[i]p[i+1]) or (i1);? if i0 then? ? begin? ? ? j:=i+1;? ? ? for t:=i+1 to n do? ? ? if p[i]p[t] then j:=t;? ? ? m:=p[i]; p[i]:=p[j]; p[j]:=m;? ? ? t:=(n-i) div 2;? ? ? for j:=1 to t do? ? ?? ?begin? ? ?? ?? j1:=i+j; j2:=n-j+1;? ? ?? ?? m:=p[j1]; p[j1]:=p[j2]; p[j2]:=m;? ? ?? ?end;? ? end;end;procedure process;begin? m:=0; j:=0;? repeat inc(j); m:=m+d[j]; until (m0) or (j=n2);? if m=0 then? ? begin? ? ? inc(sum); s:=0;? ? ? pa:=0; pb:=0; pc:=0;? ? ? writeln(No.,sum:5);? ? ? for j:=1 to n2 do? ? ?? ?begin? ? ?? ?? inc(s); prt2(d[j]);? ? ?? ?? if (s mod 5)=0 then writeln;? ? ?? ?end; ? ? writeln;? ? ? for j:=1 to n do write(c[j]:2, );? ? ? writeln;? ? end;end; ?begin {main}? writeln(输入圆盘数 N:(=50)); readln(n);? n2:=n*2; ?sum:=0;? for i:=1 to n do ?begin d[i]:=-1; d[n+i]:=1 end;? i:=1;? while i0 do? ? begin? ? ? perm(n2,d,i);? ? ? if i0 then process;? ? end;? writeln(排列总数:,sum:6, ? ?圆盘数:,n:2);end.
菲波拉契数列【问题描述】著名的菲波拉契(Fibonacci)数列,其第一项为0,第二项为1,从第三项开始,其每一项都是前两项的和。编程求出该数列前N项数据。?【分析】按菲波拉契数列的原则,数列为:0 1 1 2 3 5
您可能关注的文档
最近下载
- 《国有企业采购操作规范》解读.pptx
- 村干部定向招录乡镇公务员考试真题.pdf VIP
- 工业与民用供电系统设计规范GBJ52-83.pdf VIP
- 学堂在线网课《生活英语读写》课后作业单元考核答案.docx
- 《长方体和正方体的认识》说课稿-2023-2024学年五年级数学下册人教版.docx
- 高中语文选择性必修中册教学课件 6 记念刘和珍君 为了忘却的记念.ppt VIP
- 湖北村干部定向招录乡镇公务员考试真题.pdf VIP
- 2025届辽宁省名校联盟高考模拟卷(调研卷)英语试题(一)(含答案,无听力原文及音频).docx VIP
- 《汽化和液化 液化》ppt课件.pptx
- 水果分拣系统设计.doc
文档评论(0)