海滩上有5只猴子,发现有一堆桃子,第一只猴子把桃子分成5堆发现多了1个,于是把多的那个扔了,并取走分好的1堆桃子。五只猴子都可以进行同样的操作。
问: 桃子最少有多少个?
public class 猴子拿桃子 {
public static void main(String[] args) {
// 这里我们用穷举
for (int i = 0; i < 10000; i++) {
// 进行5次操作,且返回值不能为0
if (take(take(take(take(take(i)))))!=0){
// 输入桃子的数量
System.out.println(i);
}
}
}
// 进行拿之歌操作并返回剩余的桃子,如果不满足拿的条件返回0
static int take(int n){
int a = n/5; // 一堆桃子的数量
if (n%5==1){
n = n -1 -a;
return n;
}
return 0;
}
}
输出结果: