猴子吃桃问题
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃前一天剩下的一半零一个。
到第12天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少个桃子?
很明显12是随便给的,它是自定义的
理解:
第十二天:1个桃子
第十一天:口算出来是4个桃子,变成公式就是 1+1x2
第十天:口算出来是10个桃子,变成公式就是4+1x2
…
看的有点萌,我们转换一下,把第十二天看作第一天好理解:
第一天:1个桃
第二天:(1+1)*2 个桃子,按照上面的写法第二天就变成2个桃,那是口算,心里明白,但是确实不能那样写
第三天:(4+1)*2 10个桃
-
定义一个变量作为天数比如:int d = 12; (这个值我们可以从键盘输入)
-
定义一个变量作为桃子的数量:int t =0;
-
需要一个循环去循环天数,如果是第一天桃子数就是1(t=1),第一天之后就变成了(t+1)*2
我想讲的应该够清楚了吧
c
#include <stdio.h>
int main()
{
//传入第几天
int d;
printf("输入第几天:");
scanf("%d",&d);
//定义桃子数和天数自增变量
int t=0,i;
for(i = 1; i <= d; i++){
//如果是第一天桃子数就是1
if(i == 1){
t = 1;
continue;
}else {
//如果不是第一天就按照公式计算桃子数
t=(t+1)*2;
}
}
printf("第一天的桃子数:%d",t);
return 0;
}