一个有关猴子吃桃子的编程题,用c语言循环语句怎么做??

有一只猴子,第一天摘了若干个桃子 ,当即吃了一半,但还觉得不过瘾 ,就又多吃了一个。第2天早上又将剩下的桃子吃掉一半,还是觉得不过瘾,就又多吃了两个。以后每天早上都吃了前一天剩下的一半加天数个(例如,第5天吃了前一天剩下的一半加5个)。到第n天早上再想吃的时候,就只剩下一个桃子了。 输入: 天数n 输出: 第一天的桃子个数

1、首先在电脑中打开vc6.0,新建一个项目,添加头文件,如下图所示。

2、接着添加main主函数,如下图所示。

3、然后定义day、x1、x2,如下图所示。

4、接着初始day、x2,然后使用while循环。

5、最后使用printf打印,运行程序看看结果,猴子吃桃问题就完成了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-28
分析:
① 从最后一天的x=1个,倒推出前一天的个数x,表达式可写为x=2(x+1)
② 将该表达式作为循环n次的循环体,并在该语句处设置断点,进行观察即可。
最简单的源程序如下:
#include<stdio.h>
void main()
{
int i,x;int day,int n;
printf("请输入天数:\n");
scanf("%d",&n);
for(i=0;;i+=2)
{
x=i;
for(day=1;day<=n;day++)
x=x/2-1;
if(x==1)
{
printf("第一天的桃子个数为%d\n",i);
break;
}
}
getch();
}本回答被网友采纳
第2个回答  2015-09-05
递推法:
#include <stdio.h>
void main()
{
int day,n;
for(day=10,n=1;day>0;day--){
printf("第%d天有%d个\n",day,n);
n=2*n+2;
}
}

递归法:
#include <stdio.h>
int monkey(int day){
int n;
if(day==10) return 1;
else
return n=2*monkey(day+1)+2;
}

void main()
{
int day;
printf("%d",monkey(1));

}
第3个回答  2013-05-12
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n;
int num = 1;
printf("input n:\n");
scanf("%d",&n);

n = n-1;
//n-1 (n-1 + 1)*2
//n-2
while(n>=1)
{
num = (num+n)*2;
n--;
}

printf("first day:%d\n",num);
system("pause");

}本回答被网友采纳
第4个回答  2015-08-22
#include<stdio.h>
#include<stdlib.h>
int main()
{int n;
int num = 1;
printf("input n:\n");
scanf("%d",&n);
n = n-1;
//n-1 (n-1 + 1)*2
//n-2
while(n>=1)
{ num = (num+n)*2;
n--; }
printf("first day:%d\n",num);
system("pause"); }
相似回答