「这是我参与2022首次更文挑战的第2天,活动详情查看:2022首次更文挑战」
一、问题描述
5 只猴子是好朋友,在海边的椰子树上睡着了。这期间,有商船把一大堆香蕉忘记在沙滩上离去。
第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一份藏起来继续睡觉。
第2只猴子醒来,把香蕉均分成5堆,还剩下2个,就吃掉并把自己的一份藏起来继续睡觉。
第3只猴子醒来,把香蕉均分成5堆,还剩下3个,就吃掉并把自己的一份藏起来继续睡觉。
第4只猴子醒来,把香蕉均分成5堆,还剩下4个,就吃掉并把自己的一份藏起来继续睡觉。
第5猴子醒来,重新把香蕉均分成5堆,此时正好不剩!
请计算一开始最少有多少个香蕉?
二、题目要求
考察
1.简单模拟
2.建议用时10~25min
三、解题思路
把题目的描述分成5个条件:
- 条件1:n%5==1
- 条件2:条件1满足,n%5==2
- 条件3:条件2满足,n%5==3
- 条件4:条件3满足,n%5==4
- 条件5:条件4满足,n%5==0&&n!=0 条件5满足之后,所有条件全部满足,此时求出的n就是题目要求的值。
四、编码实现
#include<iostream>
using namespace std;
int main()
{
int i,n;
for(i=6;;i++)//循环判断香蕉数目
{
n=i;
if(n%5==1)//条件1
{
n=(n-1)/5*4;
if(n%5==2)//条件2
{
n=(n-2)/5*4;
if(n%5==3)//条件3
{
n=(n-3)/5*4;
if(n%5==4)//条件4
{
n=(n-4)/5*4;
if(n%5==0&&n!=0)//条件5
{
cout<<i;//满足所有条件输出结果
return 0;
}
}
}
}
}
}
return 0;
}
五、输出结果
结果为:3141