例题来源:谭浩强《C语言程序设计》第五版:习题4.12
猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半多一个。到第10天想再吃时,剩下了一个。求第一天共摘了多少桃子?
简单推算一下第10天剩了1个,每天吃前一天一半再多一个,算出第9天剩了4个,反向验证一下,没错。那前一天就是(今天的+1)*2,下面是代码。
#include <stdio.h>
int Peach(int n)
{
int tmp=1;//注意是1,不是0!!!!!!
for(int i=1;i<n;i++)//i<n,不是i<=n!!!!
{
tmp=(tmp+1)*2;
}
return tmp;
}
int main()
{
for(int i=1;i<=10;i++)
printf("第%d天有%d个桃子\n",i,Peach(i));//为了显示清楚把每一天都写出来
return 0;
}
今日内容就是这些,如果有问题,希望看见的人多加指导,有问题也可以私信我。