public class Dg {
static int ts=0;//桃子總數
int fs=1;//記錄分的次數
static int hs=5;//猴子數...
int tsscope=5000;//桃子數的取值範圍.太大容易溢出.
public int fT(int t){
if(t==tsscope){
//當桃子數到了最大的取值範圍時取消遞歸
System.out.println("結束");
return 0;
}else{
if((t-1)%hs==0 && fs <=hs){
if(fs==hs) {
System.out.println("桃子數 = "+ts +" 時滿足分桃條件");
}
fs+=1;
return fT((t-1)/5*4);// 返回猴子拿走一份後的剩下的總數
}else {
//沒滿足條件
fs=1;
//分的次數重置爲 1
return fT(ts+=1);//桃子數加+1
}
}
}
public static void main(String[] args) {
new Dg().fT(0);
}
}
java算法:猴子分桃子問題
題目:海灘上有一堆桃子,五隻猴子來分。第一隻猴子把這堆桃子憑據分爲五份,多了一個,這隻猴子把 多的一個扔入海中,拿走了一份。第二隻猴子把剩下的桃子又平均分成五份,又多了一個,它同樣把多的 一個扔入海中,拿走了一份,第三、第四、第五隻猴子都是這樣做的,問海灘上原來最少有多少個桃子?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.