C++经典问题算法分析

C++经典问题算法分析

ID:44416096

大小:1.93 MB

页数:50页

时间:2019-10-21

C++经典问题算法分析_第1页
C++经典问题算法分析_第2页
C++经典问题算法分析_第3页
C++经典问题算法分析_第4页
C++经典问题算法分析_第5页
资源描述:

《C++经典问题算法分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、—、百钱买百鸡问题(枚举算法)★算法分析:1、对百钱买百鸡问题的所有结果进行逐一统计验证(枚举验证b2、公鸡最多只能买20只,母鸡最多只能买33只,小鸡最多只能买300只。3、用for循环进行逐一验证★源代码:4、对小鸡的费用应用x/3代替x*(1/3),因为1/3在整型变量下的值为0o5、需保证小鸡的数量是3的倍数,即x%3==0oBialgorithml.cpp工口凶"百钱买白躅问题(迭代算迭分析)_"公鸡每只5元,母鸡每只3元,小鸡三只4元#includeusingnamespacestd;intmain()in

2、tFor(g=O;g<=20;g++)for(m=0;m<=33;m++),,«n«;for(x=O;x<=300;x++)iF((5*g+3*n+x/3==100)&&(g+n+x==100)&&(x%3==0)){cout«,1公鸡cout«"母鸡cout«,i小鸡cout<

3、公鸡:0母鸡:25公鸡:4母鸡:18丿公鸡:8母鸡:11彳性鸡:12母鸡:4/DPressanykeytocontinue、鸡!75、鸡:78、鸡:81、鸡:84图1-2二、填写运算符问题(枚举算法)★算法分析:仁5个数字需要填入

4、4个运算符。2、每两个数字之间有4种运算符可以选择。3、当运算符中填入除号时,右边的被除数不能为0.4、乘除的优先级大于加减的优先级。5、可以用循环的方法逐一填入各种运算符。★源代码:a(gonthm2.cppttincludeusingnamespacestd;intnain()intj,i[5]9num[6],sign,result;intcount=0;Floatleft,right;charoper[5]-

5、cin

6、>>nun[j];cout<<,epleaseinputtheresult;cin>>result;For(i[1]=1;i[1]<=4;i[1]**)

7、

8、(num[2]f-0))For(i[2]=1;i[2]<=4;i[2]**)iF((i[2]<4)

9、

10、(nun[3]?=0))For(i[3]=1;i[3]<=4;i[3]++)if((i[3]<4)

11、

12、(num[4]?=0))For(i[4]=1;i[4]<=U;i[4]**)II(nun[5]f=0))left=0;right=nun[1];sign=1;For(j=1;j<=4;

13、j++)switch(oper[i[j]])case*♦*:left-left*sign*right;sign=1;right=nun[j*1];break;case"-":leFt=left*sign*right;sign=-1;riaht-numri*11:if(leFt*sign*right—result)iF(count==0)cout<<,,noan

14、swer?,B;return0;图2-1三、汉诺塔问题(递归算法)★算法分析:仁汉诺塔问题可以运用递归算法解决。2、递归是函数本身调用直接或者间接调用自己的方法。3、在汉诺塔问题中需要的步骤数是2An-1o4、汉诺塔问题步骤解析:(1)把1座上()个盘子借助3座移动到2座。(2)把1座上的第n个盘子移动到3座。(3)把2座上的()个盘子借助1座移动到3座。(4)我们假设用h(n,a,b,c)表示把1座n个盘子借助2座移动到3座。由此可得岀结论:(1)上是h(n,1,3,2),(2)上是(,2,1,3)★源代码:S3-1★执行结果:"F:

15、t机实战基地DebugaIgorithm3.exe'BSB汉诺塔问题pleaseinputnumber:3thesteptonoving3diskes1—>31—>23>21--->32>12>3k—>3请按任意键继续・・・图3-2★形象示例:图3-3★故事缘由:据说古代有一个梵塔,塔内有3个座A、B、CoA座上有64个圆盘,盘子大小不等,大的在下,小的在上。有一个和尚想把这64个盘子从A座移动到C座,但每次只能移动一个圆盘,并在移动过程中始终保持大盘在下,小盘在上。在移动过程中只能利用B座。现在需要写出移动的步骤。这就是汉诺塔问题。

16、盘移当时这个和尚觉得很难,于是他想,要是有一个人能把前面的63个动到B座,自己再把最后一个圆盘移动到C座,那就简单了。所以他找了另一个和尚来做这件事。但是另一个和尚也觉得很难,于是又找来了第三

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。