现在的位置: 首页 > 综合 > 正文

闲来无事

2014年10月30日 ⁄ 综合 ⁄ 共 689字 ⁄ 字号 评论关闭

问题: 

海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只
   猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了
   一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,
   问海滩上原来最少有多少个桃子?

 

解答:

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 ;
		}
	}
}

 

抱歉!评论已关闭.