当前位置:首页 » 编程语言 » 猴子吃桃c语言程序while
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

猴子吃桃c语言程序while

发布时间: 2022-04-26 08:51:26

1. c语言,猴子吃桃子代码求注释

哥们好,我来解释解释哈
这个程序是倒着分析的:首先说的是s[n]为第n只猴子走后,留给其他每个猴子的桃子的数目。(当然猴子都不知道前面的猴子已经拿过了),所以剩余桃子是s[5]*4,就是第五只猴子给其他每只猴子留下的桃子数目乘以4。
倒着推,第五只猴子先多吃了一个,再平分5份,并吃掉了自己的一部分,那么留下的s[5]其实肯定是4的倍数【这段代码其实可以优化一下】则留下的s[5]*5并加上1,就是第4个猴子留下的桃子总数,然后看下是否是4的倍数,因为这是第四个猴子留下的准备给其他4个猴子的桃子,肯定是4的倍数啦,如果不是就说明错误咯,,然后这个数再除以4,再乘以5,再加上1,就是第三只猴子留下的桃子总数,那肯定也是4的倍数啦。
以此类推,就能推到第一只猴子时的桃子数什么的,总数什么的,都出来啦
如果上面意思弄懂了,现在就说程序本身,先假设s[5]为1,然后看s[5]*5+1【就是第四只猴子留下的桃子数目】是否能被4整除,如果不能,就直接跳出循环,假设s[5]为2,再看s[5]*5+1能否被4整除,如果能被整除,就得到s[4]的值,【就是你 “s[4]
/=
4;
//想知道这代码有什么用”的这段代码的意思】再乘以5,然后再加上1,就是第三只猴子留下的桃子数目,再看这个能否被4整除,如果不能,就直接跳出循环,再重新来啦
一直到s[1],最后s[0]就是所谓的总数目啦,
懂了吧,朋友?还没懂的话
就再继续探讨探讨哈
欢迎

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

如果真是吃到了第10天,我想说这TMD还是猴子吗?第一天就会撑死!

C代码在线运行工具

#include<stdio.h>

intmain()
{
intday=10;
intsum=0;
inti=0;

sum=1;
for(i=day;i>=1;i--)//吃之后算法
{
sum=(sum+1)*2;
}
printf("第%d天吃之后还剩1个,最初有%d个桃子,",day,sum);
printf("第1天吃了%d个桃子; ",sum/2+1);

sum=1;
for(i=day-1;i>=1;i--)//吃之前算法
{
sum=(sum+1)*2;
}
printf("第%d天吃之前还剩1个,最初有%d个桃子,",day,sum);
printf("第1天吃了%d个桃子。 ",sum/2+1);

return0;
}

第 10 天吃之后还剩1个,最初有 3070 个桃子,第 1 天吃了 1536 个桃子;

第 10 天吃之前还剩1个,最初有 1534 个桃子,第 1 天吃了 768 个桃子。

3. C语言编程猴子吃桃子问题

猴子只吃了99次。第100次还没吃呢。

只是这求到100天之前,这数字也是太大了吧?

int早就溢出了。

用double只能保证前面的大数正确,后面的尾数就全变为0了(否则要使用高精度计算,编程代码就复杂多了):

#include<stdio.h>
intmain()
{intday=99;
doublex1,x2=1;
while(day)
{x1=(x2+1)*2;x2=x1;day--;}
printf("%.0lf ",x1);
return0;
}

4. 猴子吃桃。C语言编程。

#include<stdio.h>
intmain()
{
intt=1;
intd=10;
for(d=10;d>1;d--)
t=(t+2)*3;
printf("%d ",t);
return0;
}

5. 如何用c语言while循环实现下面描述里猴子吃桃问题。

#include<stdio.h>
int
main()
{
int
day=9,n1,n2=1;
while(day>=1){
n1=(n2+1)*2;
n2=n1;
day--;
}
printf("第一天的桃子总数为:%d\n",n1);
return
0;
}

6. C语言猴子吃桃

#include <stdio.h>
int main(void)
{

int i, peach;

peach=1;
scanf("%d",&i);
while(i>1)
{
i--;
peach=(peach+1)*2;
}
printf("%d\n", peach);
}

程序如上,
你可以输入第i天发现桃子数为1.
例如:你输入
10
结果是
1534
你说的
1023
肯定是不对的,因为它都是一半后多吃1个,应该是偶数。
上面的程序,正是你题目的逆向死维,没有用递归。

7. 简单C语言循环语句编程题目! 猴子摘了一堆桃子。第一天吃了一半,觉的不过瘾,又多吃了一个,第二天吃了

#include<stdio.h>
voidmain()
{
intday,x1,x2;
day=5;
x2=1;
while(day>0)
{
x1=(x2+1)*2;
x2=x1;
day--;
}
printf("total=%d ",x1);
}

8. c语言 猴子吃桃

#include <stdio.h>
int main(void)
{

int i, peach;

peach=1;
scanf("%d",&i);
while(i>1)
{
i--;
peach=(peach+1)*2;
}
printf("%d\n", peach);
}

程序如上,
你可以输入第i天发现桃子数为1.
例如:你输入
10
结果是
1534
你说的
1023
肯定是不对的,因为它都是一半后多吃1个,应该是偶数。
上面的程序,正是你题目的逆向死维,没有用递归。

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

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

10. C语言 猴子吃桃

你好!!!
其实这是个递归问题!!!
思路分析如下:
某一天吃的是前一天的一半还多一个,假设今天剩下为x1,昨天共有x2个桃子,它们的关系是:x1=x2/2-1,即x2=(x1+1)*2,那么既然已经知道今天剩下的桃子,那么就可以知道,昨天的,要是知道昨天的,那么前天的就知道了,要是知道前天的,那么大前天的也就知道了、、、、、、到最后一定知道第一天的陶子总数。

现在我们来分析你的代码:

从代码可以知道,第九天只剩下一个桃子了,也就的循环九次,故代码为:
while(day>0)
{
x1=(x2+1)*2;
x2=x1;
day--;
}
不懂的我们在交流!!!