你二爷爷的三哥哥
2017-01-04 17:20
任务问题我总觉得别扭,,“猴子第一天摘下N个桃子,当时就吃了一半“,意思是不是第一天所剩和第一天摘的不一样啊; 第一天所剩=(第一天摘的/2 -1)啊 第二天=第一天所剩/2-1; 第三天=第二天所剩/2-1; . . . .第九天所剩=第八天所剩/2-1; 把我们的程序结果逆运算:第九天剩的=4 第八天=(4+1)*2=10; 第七天=(10+1)*2=22; . 第一天剩的=(766+1)*2; 第一天摘得=(1534+1)*2;. ,那么问题来了,猴子第一天到底摘了几个桃?
之前有回答这个问题:请参考:http://www.imooc.com/qadetail/179726 。
你的疑问是对的,答案确实是点问题,题目本身没问题。{练习代码后面设置num为每天吃剩的桃的数目(int num; //定义所剩桃子数。),在n=10时的时候递归终止,return1 ,可是这时候第十天还没吃呢,是吃之前就只有一个了,所以这个递归终止就不对,当然结果也就不对了},其实就是练习代码本身有点小问题导致的(虽然这不影响对递归的理解,不过我觉得该明白还是要明白)。 实际吃前、吃后数目如下:
猴子第一天摘了:1534个桃子。
猴子第 1 天吃之前桃子个数:1534 吃之后桃子个数:766
猴子第 2 天吃之前桃子个数:766 吃之后桃子个数:382
猴子第 3 天吃之前桃子个数:382 吃之后桃子个数:190
猴子第 4 天吃之前桃子个数:190 吃之后桃子个数:94
猴子第 5 天吃之前桃子个数:94 吃之后桃子个数:46
猴子第 6 天吃之前桃子个数:46 吃之后桃子个数:22
猴子第 7 天吃之前桃子个数:22 吃之后桃子个数:10
猴子第 8 天吃之前桃子个数:10 吃之后桃子个数:4
猴子第 9 天吃之前桃子个数:4 吃之后桃子个数:1
猴子第 10天吃之前桃子个数:1
你好,第几天剩下几个桃子,应该描述为那天猴子吃饭前的桃子数量。(确实是题目描述不准确,但是不要转牛角尖啊,兄弟)
依据就是倒推,题目明确说明第九天剩下4桃子,而且第十天吃之前发现只有一个桃子了。如果按你的分析,第九天剩下4个桃子,那第十天吃之前肯定还有4个,所以你的分析不成立。
C语言入门
926027 学习 · 20793 问题
相似问题