为了账号安全,请及时绑定邮箱和手机立即绑定

关于递归函数(二)的疑问

任务问题我总觉得别扭,,“猴子第一天摘下N个桃子,当时就吃了一半“,意思是不是第一天所剩和第一天摘的不一样啊; 第一天所剩=(第一天摘的/2 -1)啊 第二天=第一天所剩/2-1; 第三天=第二天所剩/2-1; . . . .第九天所剩=第八天所剩/2-1; 把我们的程序结果逆运算:第九天剩的=4 第八天=(4+1)*2=10; 第七天=(10+1)*2=22; . 第一天剩的=(766+1)*2; 第一天摘得=(1534+1)*2;. ,那么问题来了,猴子第一天到底摘了几个桃?

正在回答

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


0 回复 有任何疑惑可以回复我~
#1

你二爷爷的三哥哥 提问者

非常感谢!
2017-01-10 回复 有任何疑惑可以回复我~

你好,第几天剩下几个桃子,应该描述为那天猴子吃饭前的桃子数量。(确实是题目描述不准确,但是不要转牛角尖啊,兄弟)

依据就是倒推,题目明确说明第九天剩下4桃子,而且第十天吃之前发现只有一个桃子了。如果按你的分析,第九天剩下4个桃子,那第十天吃之前肯定还有4个,所以你的分析不成立。

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926210    人
  • 解答问题       20797    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

关于递归函数(二)的疑问

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信