问题:
海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只
猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了
一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,
问海滩上原来最少有多少个桃子?
解答:
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 ; } } }