标题:猴子分香蕉
5只猴子是好朋友,在海边的椰子树上睡着了。这期间,有商船把一大堆香蕉忘记在沙滩上离去。
第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一份藏起来继续睡觉。
第2只猴子醒来,重新把香蕉均分成5堆,还剩下2个,就吃掉并把自己的一份藏起来继续睡觉。
第3只猴子醒来,重新把香蕉均分成5堆,还剩下3个,就吃掉并把自己的一份藏起来继续睡觉。
第4只猴子醒来,重新把香蕉均分成5堆,还剩下4个,就吃掉并把自己的一份藏起来继续睡觉。
第5只猴子醒来,重新把香蕉均分成5堆,哈哈,正好不剩!
请计算一开始最少有多少个香蕉。
需要提交的是一个整数,不要填写任何多余的内容。
解析:
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++;
}
答案:3141
网友评论