慕粉4060463
2016-11-07 14:04
第一天剩下了1534个说明这个猴子第一天吃了1536个桃子怎麽可能只摘了1534个?!
答案确实是有有问题的,题目里第一天所摘桃(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)。
如果按照你这样算的话,第一天应该是766个,也不会是1536个呢
到第10天在想吃的时候就剩一个桃子了 这是题干原话 表示 第十天还没吃 可是这天只剩下了一个
第十天剩下一个
同样第一天剩下1534 也是指的是没吃之前
C语言入门
926207 学习 · 20797 问题
相似问题