海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只

海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同... 海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只
猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了
一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,
问海滩上原来最少有多少个桃子?

这题怎么做?
怎样编程
展开
 我来答
小潘LP
2020-07-27
知道答主
回答量:1
采纳率:0%
帮助的人:596
展开全部
#include<iostream>
using namespace std;
int main(){
int x;
for(x=5;x<10000;x++){
int m=x;
int num=0;
for(int i=1;i<=5;i++){
if((m-1)*4%5==0){
m=(m-1)/5*4;
num++;
}else{
break;
}
}
if(num==5){
cout<<"x="<<x<<endl;
break;
}
}
return 0;
}

缩进自己微调
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
身处孽世
2021-01-12
知道答主
回答量:2
采纳率:0%
帮助的人:1040
展开全部
void main(){
/*
那么第5只没拿之前有5*i+1
也就是第4只猴子拿走之后还有5*i+1
第4只猴子拿走了一份,5*i+1是余下4份
那么第4只猴子拿走了(5*i+1)/4
第3只猴子拿走了(((5*i+1)/4)*5+1)/4
...
其余同理
前一只猴拿走的个数为后一只猴*5+1再 /4
*/
int i;//假设最后的猴子拿走了i个桃
for(i=1;i<10000;i++){
int j,k=i;
//只有4只猴,只需往上推4次
for(j=1;j<=4;j++){
//判断上述表达式是否能成立
if((k*5+1)%4==0){
//如果能成立则让k得到前一只猴子拿的数
//重复4次
//如果都能成立,那么就是该数
k=(k*5+1)/4;
}else{
//不成立说明不对
break;
}
}
//循环4次之后如果都成立,那么最终j的值会是5
//也就是说,当j==5的话,该数判断了4次全部成立
if(j==5){
printf("%d",k*5+1);
break;
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
玉冰贤梓
2005-10-29 · TA获得超过901个赞
知道小有建树答主
回答量:617
采纳率:0%
帮助的人:430万
展开全部
22656
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式