问题:
海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只
猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了
一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,
问海滩上原来最少有多少个桃子?
解答:
package com.test;
public class HZFT {
/**
* @param args
* 猴子分桃问题
*/
public static void main(String[] args) {
int j ,count;
double i = 0;
for (count = 1 ;count<1000;count++){ //count的上限以有结果为目的 可以更大点
i = count; //count的值可以理解为最后一只猴子拿走的桃的数量
for ( j = 0;j<4;j++){ //这是5个猴子的情况
i = (i*5+1)/4;
}
i = i*5+1;
if(isNum(i)){ //只有i是整数的时候才是符合要求的
System.out.println(count);
System.out.println("桃子的总数可能个数有:"+(int)i);
}
}
}
public static Boolean isNum(double i){ //判断是否是整数
String str = i+"";
str = str.replace(".","点"); //小数点的正则不会写 额 正则就不会 所以出此下策
String[] st = str.split("点");
if(st[1].equals("0")){
return true ;
}else{
return false ;
}
}
}