请用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"); }