猴子吃桃问题(C++)

猴子吃桃问题(C++)

ID:38138513

大小:83.41 KB

页数:4页

时间:2019-06-02

猴子吃桃问题(C++)_第1页
猴子吃桃问题(C++)_第2页
猴子吃桃问题(C++)_第3页
猴子吃桃问题(C++)_第4页
资源描述:

《猴子吃桃问题(C++)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、猴子吃桃问题猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半多一个。到第30天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。解:根据题意,设s为第i天所拥有的桃子数(注:该处某i天拥有的桃子数是指当天未吃之前的桃子总数),则前后相邻两天之间的桃子数有如下关系:ss=s−(i+1),将此式转化为s=2s+2i+1i2ii+1则有:s=1(i=30)is=2s+2(1≤i<30)ii+1此时由于最后一天(第30天的)桃子总数是已知的,根据上述公式可推出第29天

2、的桃子总数;而根据第29天的又可以推出第28天的桃子总数,……,重复上述工作,就可以推出第1天的桃子总数。推导过程如下图:天数i第i天桃子未吃前总数si30s=13029s=2×(s)+2=4293028s=2×(s)+2=102829............1?则相应算法流程如下:1)s=1,即最初的s为130i+12)i从29循环到1,反复执行如下操作:s=2s+2ii+1s=si+1i3)输出s的值,即为所求结果。1相应程序如下:#include#include#defineN30voidmain(){inti,si,s;s=1;

3、//第30天桃子总数为1个for(i=N-1;i>=1;i--){si=2*s+2;s=si;printf("第%2d天的桃子总数为%d个",i,s);}printf("共%d天,第一天的桃子总数为%d",N,si);system("pause");}

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

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

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