一、问题描述
5 只猴子是好朋友,在海边的椰子树上睡着了。这期间,有商船把一大堆香蕉忘记在沙滩上离去。
第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一份藏起来继续睡觉。
第2只猴子醒来,把香蕉均分成5堆,还剩下2个,就吃掉并把自己的一份藏起来继续睡觉。
第3只猴子醒来,把香蕉均分成5堆,还剩下3个,就吃掉并把自己的一份藏起来继续睡觉。
第4只猴子醒来,把香蕉均分成5堆,还剩下4个,就吃掉并把自己的一份藏起来继续睡觉。
第5猴子醒来,重新把香蕉均分成5堆,此时正好不剩!
请计算一开始最少有多少个香蕉?
二、题目要求
考察
简单模拟 建议用时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就是题目要求的值。
四、编码实现
usingnamespacestd; intmain() { inti,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;//满足所有条件输出结果return0; } } } } } } return0; }
五、输出结果
结果为:3141