讨厌的猴子
/*
* 海滩上有一堆桃子,五只猴子来分。
* 第一只猴子把这堆桃子平均分为五份,多了一个,
* 这只猴子把多的一个扔入海中,拿走了一份。
* 第二只猴子把剩下的桃子又平均分成五份,又多了一个,
* 它同样把多的一个扔入海中,拿走了一份,
* 第三、第四、第五只猴子都是这样做的,
* 问海滩上原来最少有多少个桃子? 桃子的个数有多少种可能?100内的数
*/
[解决办法]
100以内的话,没有合适的值。
最小值是3121。
下面是代码和执行结果。
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
int now = 0;
int loop = 5;
ArrayList<Integer> counts = new ArrayList<Integer>();
for (int i = 1; i <= 50000; i++) {
now = i;
for (int j = loop; j > 0; j--) {
if (now % loop == 1) {
now = (now - 1) * (loop - 1) / loop;
if (j == 1) {
counts.add(i);
}
}
}
}
System.out.println("个数:" + counts.size());
for (Integer integer : counts) {
System.out.println(integer);
}
}
}
执行结果
个数:16
3121
6246
9371
12496
15621
18746
21871
24996
28121
31246
34371
37496
40621
43746
46871
49996
[解决办法]