这答案是对的吗

来源:5-8 递归函数(二)

慕粉4060463

2016-11-07 14:04

第一天剩下了1534个说明这个猴子第一天吃了1536个桃子怎麽可能只摘了1534个?!

写回答 关注

3回答

  • 慕后端3326841
    2016-12-01 02:57:32
    已采纳

    答案确实是有有问题的,题目里第一天所摘桃(N个)与剩余桃(N/2-1个)是不一样的,答案却相等,有一个必然不对(错的是第一天剩的桃,应为766个);同样可以印证的是第9天答案是剩4个桃,那么第10天开吃前也应该是4个桃才对,而题目是开吃前就1个桃了,这也对不上(第九天应该就剩下1个)。

    我的理解是:程序定义num为每天还剩下的桃,按num = 2*getPeachNumber(n+1)+2 的关系递推。 

    那到终止条件时,PeachNumber(n+1)应为第n+1天剩下的桃,这样才能推算出num是第n天剩下的桃的数目。

    而对PeachNumber(10)程序用是第10天吃之前的值,那么这里按上面关系递推得到的num就会是第9天吃之前桃的数量。也就是定义的是吃剩的桃的个数,得到的却是吃之前的桃的个数,这即是问题所在。

    想法1:num仍定义每天还剩下的桃,到第9天吃后剩1个桃来终止。第一天摘桃处理为(第一天的num*2+2  ) 。

    想法2:num定义每天吃之前有的桃,到第10天吃前有1个桃来终止。每天剩桃处理为(当天num/2-1)。

  • Morikun
    2017-01-22 17:00:18

    如果按照你这样算的话,第一天应该是766个,也不会是1536个呢

  • motm_lala
    2016-11-08 11:19:06

    到第10天在想吃的时候就剩一个桃子了  这是题干原话   表示 第十天还没吃  可是这天只剩下了一个 

    第十天剩下一个

    同样第一天剩下1534  也是指的是没吃之前

C语言入门

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

926020 学习 · 20793 问题

查看课程

相似问题