早教吧 育儿知识 作业答案 考试题库 百科 知识分享

猴子吃桃问题.为什么x1=(x2+1)*2猴子吃桃问题.猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天

题目详情
猴子吃桃问题.为什么x1=(x2+1)*2
猴子吃桃问题.猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只剩下一个桃子了,求第一天共摘了多少个桃子?
源程序如下:
main()
{
int day,x1,x2;
day=9;
x2=1;
while(day>0)
{
x1=(x2+1)*2;
x2=x1;
day--;
}
printf("total=%d\n",x1);
}
运行结果:1534
问:1、为什么x2赋初值为1?2、为什么x1=(x2+1)*2(即第2天桃子数加1后乘以2就是第一天的桃子数)?3、可否用for循环解出此题?(如能请写出源程序)
如回复正确,本人愿奖赏出全部积分,食言者不得好死.
▼优质解答
答案和解析
1.x2赋初值为1,是因为“到第10天早上想再吃时,见只剩下一个桃子了”
2.因为把x1吃掉一半零一个后剩余x2,即x1/2-1=x2,所以x1=(x2+1)*2
3.main()
{
int i,n;
n=1;
for(i=1;i0)
{x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/
x2=x1;
day--;
}
printf("the total is %d\n",x1);
}