猴子分香蕉
5只猴子是好朋友,在海边的椰子树上睡着了。这期间,有商船把一大堆香蕉忘记在沙滩上离去。
第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一份藏起来继续睡觉。
第2只猴子醒来,重新把香蕉均分成5堆,还剩下2个,就吃掉并把自己的一份藏起来继续睡觉。
第3只猴子醒来,重新把香蕉均分成5堆,还剩下3个,就吃掉并把自己的一份藏起来继续睡觉。
第4只猴子醒来,重新把香蕉均分成5堆,还剩下4个,就吃掉并把自己的一份藏起来继续睡觉。
第5只猴子醒来,重新把香蕉均分成5堆,哈哈,正好不剩!
请计算一开始最少有多少个香蕉。
package the_blue_cup;
//猴子分香蕉
public class Demo_07 {
public static void main(String[] args) {
// TODO Auto-generated method stub
for (int i = 1; i <= 100000; i++) { //一大堆香蕉
//第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一份藏起来继续睡觉。
if ((i - 1) % 5 == 0) {
int x1 = i - 1 - (i - 1) / 5;
//第2只猴子醒来,重新把香蕉均分成5堆,还剩下2个,就吃掉并把自己的一份藏起来继续睡觉。
if ((x1 - 2) % 5 == 0) {
int x2 = x1 - 2 - (x1 - 2) / 5;
//第3只猴子醒来,重新把香蕉均分成5堆,还剩下3个,就吃掉并把自己的一份藏起来继续睡觉。
if ((x2 - 3) % 5 == 0) {
int x3 = x2 - 3 - (x2 - 3) / 5;
//第4只猴子醒来,重新把香蕉均分成5堆,还剩下4个,就吃掉并把自己的一份藏起来继续睡觉。
if ((x3 - 4) % 5 == 0) {
int x4 = x3 - 4 - (x3 - 4) / 5;
//第5只猴子醒来,重新把香蕉均分成5堆,哈哈,正好不剩!
if (x4 % 5 == 0 && x4 / 5 > 1) {//每堆的个数至少大于1
System.out.println(i);
}
}
}
}
}
}
}
}
结果:
3143