猴子有128个桃子,如果第一天它吃了一半桃子多一个,第二天吃了剩下的一半多一个,问多少天以后剩下一个桃子?
时间: 2023-05-24 21:06:55 浏览: 60
假设猴子第x天时剩下1个桃子,则倒推回去:
第x天剩下1个,说明第x+1天它吃了剩下的一半多一个,即(x+1)天时剩下(1+1)*2=4个桃子;
第x+1天剩下4个,说明第x+2天它吃了剩下的一半多一个,即(x+2)天时剩下(4+1)*2=10个桃子;
依次类推,第x+3天时剩下22个,第x+4天时剩下46个,第x+5天时剩下94个,第x+6天时剩下190个,第x+7天时剩下382个。
通过这个规律可以发现,第x+n天时剩下的桃子数为2^(n+1)-2个。
因此,由于猴子在第一天吃掉了一半多一个,也就是剩下了(128-1)/2=63个桃子,由上述规律可得:
2^(n+1)-2=63
解得n=5,因此猴子在第6天时剩下1个桃子。
相关问题
猴子吃桃。猴子第一天摘若干桃子,当即吃了一半,又多一个。第二天吃了剩下桃子一半又多一个。以后每天早上都吃前一天剩下的一半多一个。这样到了第十天,只剩下一个桃子。问第一天共摘了多少个桃子?用c++
思路:倒推法
设第十天剩下的桃子数为x,则第九天剩下的桃子数为 (x+1)×2,第八天剩下的桃子数为 [(x+1)×2+1]×2,以此类推,可以得到第一天摘了多少个桃子。
代码如下:
```c
#include <stdio.h>
int main()
{
int x = 1;
for(int i = 1; i < 10; i++)
{
x = (x + 1) * 2;
}
printf("第一天共摘了%d个桃子\n", x);
return 0;
}
```
输出结果为:
```
第一天共摘了1534个桃子
```
有一堆桃子不知数目,猴子第一天吃掉一半,又多吃了一个, 第二天照此方法,吃掉剩下桃子的一半又多一个,天天如此,过了n天, 猴子吃完桃子之后发现只剩一只桃子了,问这堆桃子原来有多少个? (n<29)
这是一道数学题,根据题意可以列出如下的递推式:
第n天剩下的桃子数为:f(n) = (f(n-1)-1)/2
其中,f(n-1) 表示第n-1天剩下的桃子数,因为每天猴子都会吃掉一半再多一个,所以第n天剩下的桃子数可以通过第n-1天剩下的桃子数计算得到。
根据题意,最后一天只剩下一只桃子,即 f(n) = 1,代入递推式得到:
1 = (f(n-1)-1)/2
解得 f(n-1) = 2,代入递推式得到:
2 = (f(n-2)-1)/2
解得 f(n-2) = 5,以此类推,可以得到:
f(n-3) = 11
f(n-4) = 23
...
f(1) = 3121
所以,原来有3121个桃子。