5只猴子摘了一堆桃子,约好第二天早上来分。第一只猴子来得早,它将桃子平分成成5堆,多出1个,它把多出的一个吃了,把属于自己的一堆拿走了,将剩下的还混成一堆,其他猴子来了也正好按一样的方法处理。
编程求出原来最少有多少个桃子。(用递归函数。)
下面是我写的递归算法:
public class PeachDivideAlgorithm {
private static int num;//桃子总数
private static int count;//猴子总数,也是分桃子的次数
public static int getResult(int count){
if(count==0){
return 1;
}
if((num-1)%5!=0){
return -1;
}
num=(num-1)*4/5;
return getResult(count-1);
}
public static void main(String[] args){
count=5;
for(int i=0;i<10000;i++){//桃子数在10000内的穷举
num=i;
if(getResult(count)==1){
System.out.println("the number of the peach:"+i);
}
}
}
}
打印结果:
the number of the peach:3121 the number of the peach:6246 the number of the peach:9371 |