3.递归猴子吃桃问题

猴子第一天摘了若干个桃子,当即吃了一半,还不解馋,又多吃了一个;第二天,吃剩下的桃子的一半,还不过瘾,又多吃了一个;以后每天都吃前一天剩下的一半多一个,到第10天想再吃时,只剩下一个桃子了。问第一天共摘了多少个桃子?

 1 #include <stdio.h>
 2  
 3 int func(int n)//功能:函数返回第n天未吃前的桃子数量。
 4 {
 5     if(n == 10)//终止条件
 6         return 1;
 7     else
 8     {
 9         return (func(n+1)+1)*2;//普通情况的推导公式:第n天的桃子量 == (第n+1天桃子量+1)*2
10     }
11 }
12  
13  
14 int main(void)
15 {
16     printf("%d\n",func(1));
17     return 0;
18 }

 

posted @ 2018-08-12 21:20  2018年8月10日注册  阅读(484)  评论(0编辑  收藏  举报