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 }