请用C语言编写一个程序,“猴子吃桃”问题

发布网友 发布时间:2022-04-19 22:36

我来回答

5个回答

热心网友 时间:2023-06-22 00:07

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

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

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

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

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

热心网友 时间:2023-06-22 00:07

分析:
① 从最后一天的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();
}

热心网友 时间:2023-06-22 00:08

递推法:
#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));

}

热心网友 时间:2023-06-22 00:08

#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");

}

热心网友 时间:2023-06-22 00:09

#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"); }
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com

热门图文