ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:302KB ,
资源ID:1640506      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1640506.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《算法设计与分析》递归算法典型例题.doc)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《算法设计与分析》递归算法典型例题.doc

1、算法递归典型例题实验一:递归策略运用练习三、 实验项目1运用递归策略设计算法实现下述题目的求解过程。题目列表如下: (1)运动会开了N天,一共发出金牌M枚。第一天发金牌1枚加剩下的七分之一枚,第二天发金牌2枚加剩下的七分之一枚,第3天发金牌3枚加剩下的七分之一枚,以后每天都照此办理。到了第N天刚好还有金牌N枚,到此金牌全部发完。编程求N和M。 (2)国王分财产。某国王临终前给儿子们分财产。他把财产分为若干份,然后给第一个儿子一份,再加上剩余财产的1/10;给第二个儿子两份,再加上剩余财产的1/10;给第i个儿子i份,再加上剩余财产的1/10。每个儿子都窃窃自喜。以为得到了父王的偏爱,孰不知国王

2、是“一碗水端平”的。请用程序回答,老国王共有几个儿子?财产共分成了多少份?源程序:(3)出售金鱼问题:第一次卖出全部金鱼的一半加二分之一条金鱼;第二次卖出乘余金鱼的三分之一加三分之一条金鱼;第三次卖出剩余金鱼的四分之一加四分之一条金鱼;第四次卖出剩余金鱼的五分之一加五分之一条金鱼;现在还剩下11条金鱼,在出售金鱼时不能把金鱼切开或者有任何破损的。问这鱼缸里原有多少条金鱼?(4)某路公共汽车,总共有八站,从一号站发轩时车上已有n位乘客,到了第二站先下一半乘客,再上来了六位乘客;到了第三站也先下一半乘客,再上来了五位乘客,以后每到一站都先下车上已有的一半乘客,再上来了乘客比前一站少一个,到了终点站

3、车上还有乘客六人,问发车时车上的乘客有多少?(5)猴子吃桃。有一群猴子摘来了一批桃子,猴王规定每天只准吃一半加一只(即第二天吃剩下的一半加一只,以此类推),第九天正好吃完,问猴子们摘来了多少桃子?(6)小华读书。第一天读了全书的一半加二页,第二天读了剩下的一半加二页,以后天天如此,第六天读完了最后的三页,问全书有多少页?(7)日本著名数学游戏专家中村义作教授提出这样一个问题:父亲将2520个桔子分给六个儿子。分完 后父亲说:“老大将分给你的桔子的1/8给老二;老二拿到后连同原先的桔子分1/7给老三;老三拿到后连同原先的桔子分1/6给老四;老四拿到后连同原先的桔子分1/5给老五;老五拿到后连同原

4、先的桔子分1/4给老六;老六拿到后连同原先的桔子分1/3给老大”。结果大家手中的桔子正好一样多。问六兄弟原来手中各有多少桔子?四、 实验过程(一) 题目一:1. 题目分析由已知可得,运动会最后一天剩余的金牌数gold等于运动会举行的天数由此可倒推每一天的金牌剩余数,且每天的金牌数应为6的倍数。2. 算法构造设运动会举行了N天,If(i=N)Goldi=N;Else goldi=goldi+1*7/6+i;3. 算法实现 #include / 预编译命令 using namespace std; void main() /主函数 int i=0,count=0; /count表示运动会举办的天数

5、 int gold100; /定义储存数组 do count=count+6; / 运动会天数加六 goldcount=count; for (i=count-1; i=1; i-) if (goldi+1%6!=0 ) break; / 跳出for循环 else goldi=goldi+1*7/6+i; /计算第i天剩余的金牌数 while( i=1 ); / 当 i=1 继续做do循环 cout 运动会开了count天 endl; /返回天数 cout总共发了gold1枚金牌=1; i-) if (propertyi+1%9!=0 )break; / 数目不符跳出for循环elseprop

6、ertyi=propertyi+1*10/9+i; /计算到第i个王子时剩余份数 3. 算法实现 #include / 预编译命令 using namespace std; void main() /主函数 int i=0,count=0; /count表示国王的儿子数 int property100; /定义储存数组,表示分配到每个王子时剩余份数 do count=count+9; /王子数目为9的倍数 propertycount=count; for (i=count-1; i=1; i-) if (propertyi+1%9!=0 )break; / 数目不符跳出for循环elsepro

7、pertyi=propertyi+1*10/9+i; /计算到第i个王子时剩余份数 while( i=1 ); / 当 i=1 继续做do循环 cout 皇帝有count个儿子 endl; /返回王子数 cout遗产被分成property1份=1; i-)fishi=(fishi+1*(i+1)+1)/i; /计算到第i天剩余金鱼条数3. 算法实现#include / 预编译命令using namespace std;void main() /主函数 int i=0; int fish6; /定义储存数组各天剩余金鱼数 fish5=11; for (i=4; i=1; i-)fishi=(fi

8、shi+1*(i+1)+1)/i; /计算到第i天剩余金鱼条数cout浴缸里原有金鱼fish1条=2; i-)numi=2*(numi+1-8+i); /计算到第i站车上的人数3. 算法实现#include / 预编译命令using namespace std;void main() /主函数 int i=0;int num9; /定义储存数组num8=6; /到终点站车上还有六人for(i=7; i=2; i-)numi=2*(numi+1-8+i); /计算到第i站车上的人数cout发车时车上有num2位乘客=1; i-)3. 算法实现numi=2*(numi+1+1); /计算到第i天剩

9、余的桃子数算法实现 #include / 预编译命令using namespace std;void main() /主函数 int i=0;int num11; /定义储存数组num10=0; /第n天吃前的桃子数for(i=9; i=1; i-)numi=2*(numi+1+1); /计算到第i天剩余的桃子数cout猴子共摘来了num1个桃子=1; i-)numi=2*(numi+1+2); /计算到第i天剩余的页数3. 算法实现 #include / 预编译命令using namespace std;void main() /主函数int i=0;int num7; /定义储存数组num6=3; /到第n天时剩余的页数for(i=5; i=1; i-)numi=2*(numi+1+2); /计算到第i天剩余的页数cout全书共有num1页endl; /输出总页数,即第一天吃前的数目4. 运行结果(七)题目七:1. 题目分析由已知可得,第一个儿子得到的橘子数目为平均数的一半,由此可得到第一个儿子原先的橘子数目,而第i个儿子原先的橘

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1