猴子吃桃重大发现
发表在C语言图书答疑 2013-10-19
是否精华
版块置顶:
 原题目是这样的:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下桃子的一半零一个。到第10天早上想再吃时,发现只剩下一个桃子了。编写程序,求第一天共摘了多少桃子。
  书上的写法是这样的:
  关键思路:第一天的桃子数是第二天桃子数加1的2倍。
   #include<stdio.h>
   main()
   {
       int day,x1,x2; 
       day=9;         //关键是这里!
       x2=1;         //从第10天算起,往回推。
       while(day>0)
       {
           x1=(x2+1)*2;
           x2=x1;
           day--;
       }
       printf("the total is %d\n",x1);
   }
   其实这样算出的答案有问题,因为题目是要求第一天共摘了多少桃子,以上算法只是第一天猴子吃桃之后所剩下的桃子数目,所以,以上的day变量应该设为10,而不是9!
分享到:
精彩评论 1
qingchen971
学分:0 LV1
TA的每日心情
2020-07-16 22:27:02
2013-10-19
沙发
   呵呵,好好想了一下,书上是对的!因为第10天早上还没吃就剩下1个桃子了,那这一个桃子哪里来的?只能是第9天吃完后剩下的,所以,从第9天吃剩下的推第8天剩下的。。。一直推到第1天总共摘下的桃子数目。
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照