有一只猴子,第一天摘了若干个桃子 ,当即吃了一半,但还觉得不过瘾 ,就又多吃了一个。
第 2 天早上又将剩下的桃子吃掉一半,还是觉得不过瘾,就又多吃了两个。以后每天早上
都吃了前一天剩下的一半加天数个(例如,第 5 天吃了前一天剩下的一般加 5 个)。到第 n
天早上再想吃的时候,就只剩下一个桃子了。
输入:
天数 n
输出:
第一天的桃子个数
请问下思路,总是绕不过来弯,用递归如何实现呢
贪吃的猴子c语言,,,,,,,,,,,,
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
8条回答 默认 最新
- 青春逝如流水 2016-09-06 15:57关注
你可以倒着来,这样想。
get(1)=1就是第一天有一个桃
get(2)=2(1+(n-1))
get(3)=2(get(2)+(n-2))
这样以此类推
get(n)=2(get(n-1)+(n-(n-1)))
然后化简
得到一个递归公式
也就是如果是n天那么桃子就有
2(get(n-1)+1)个
如果n等于一那么只有一个桃子用手机写代码蛋疼
这里就不贴代码了
楼主自己完善
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报