代码
package LQB2018;
/**
* 猴子分香蕉
* 5只猴子是好朋友,在海边的椰子树上睡着了。
* 这期间,有商船把一大堆香蕉忘记在沙滩上离去。
* 第1只猴子醒来,把香蕉均分成5堆,还剩下1个,
* 就吃掉并把自己的一份藏起来继续睡觉。
* 第2只猴子醒来,重新把香蕉均分成5堆,还剩下2个,
* 就吃掉并把自己的一份藏起来继续睡觉。
* 第3只猴子醒来,重新把香蕉均分成5堆,还剩下3个,
* 就吃掉并把自己的一份藏起来继续睡觉。
* 第4只猴子醒来,重新把香蕉均分成5堆,还剩下4个,
* 就吃掉并把自己的一份藏起来继续睡觉。
* 第5只猴子醒来,重新把香蕉均分成5堆,哈哈,正好不剩!
* 请计算一开始最少有多少个香蕉。
*/
public class T1 {
public static void main(String[] args) {
int sum= 1; //假设香蕉总个数
int num; //香蕉在均分过程中的个数
while(true)
{
num = sum; //假设当前的香蕉总数
boolean flag = true; //假设当前数量是正确的
for (int i = 1; i <= 4; i++) //香蕉被分了5次,前4次分完后剩下1,2,3,4个香蕉
{
if(num >= 5 && num % 5 == i) //正好复合分香蕉规律
num = num-num/5-i; //计算分完剩下的香蕉
else
{
flag = false;
break;
}
}
if(flag == true && num >= 5 && num%5 == 0) //最后一次分香蕉的条件判断,正好分完
{
System.out.println(sum); //打印答案
break;
}
sum++;
}
}
}