题目:
5只猴子是好朋友,在海边的椰子树上睡着了。这期间,有商船把一大堆香蕉忘记在沙滩上离去。
第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一份藏起来继续睡觉。
第2只猴子醒来,重新把香蕉均分成5堆,还剩下2个,就吃掉并把自己的一份藏起来继续睡觉。
第3只猴子醒来,重新把香蕉均分成5堆,还剩下3个,就吃掉并把自己的一份藏起来继续睡觉。
第4只猴子醒来,重新把香蕉均分成5堆,还剩下4个,就吃掉并把自己的一份藏起来继续睡觉。
第5只猴子醒来,重新把香蕉均分成5堆,哈哈,正好不剩!
请计算一开始最少有多少个香蕉。
分析
题目让我们求最少多少香蕉那么我们从最小可能性19开始往上遍历,总共进行四次计算香蕉总数减去第几只猴子,再减去香蕉总数的五分之一,连续进行四次,再进行判断,如果计算四次之后的结果能被5整除,那么就直接输出
步骤:

package 第九届省赛;
public class 猴子吃香蕉 {
public static void main(String[] args) {
// 5只猴子是好朋友,在海边的椰子树上睡着了。这期间,有商船把一大堆香蕉忘记在沙滩上离去。
// 第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一份藏起来继续睡觉。
// 第2只猴子醒来,重新把香蕉均分成5堆,还剩下2个,就吃掉并把自己的一份藏起来继续睡觉。
// 第3只猴子醒来,重新把香蕉均分成5堆,还剩下3个,就吃掉并把自己的一份藏起来继续睡觉。
// 第4只猴子醒来,重新把香蕉均分成5堆,还剩下4个,就吃掉并把自己的一份藏起来继续睡觉。
// 第5只猴子醒来,重新把香蕉均分成5堆,哈哈,正好不剩!
//
// 请计算一开始最少有多少个香蕉。
for (int i =20 ; ; i++) {
double y=i;
for (int j =1; j <= 4; j++) {
y=y-j-(y-j)/5;
}
if (y%5==0) {
System.out.println(i);
break;
}
}
}
}