//猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。 //C语言,递归法: //首先我们来明确一下题意,由"到第10天早上想再吃时,见只剩下一个桃子了"可知,事实上在第九天吃过后就只有一个了.我们用total(day)来表示每一天的桃子数,这样由题意,total(10)=1,那么total(9)=(total(10)+1)*2,total(8)=(total(9)+1)*2..... #include <stdio.h> total(int day) { int sum; if(day==10) sum=1; else if(day<10) sum=2*(total(day+1)+1); return (sum); } void main() { int sum; sum=total(1); printf("猴子一共摘桃%d个。/n",sum); }