演算法 猴子分桃

2021-10-18 17:12:06 字數 638 閱讀 2956

1.問題:五隻猴子分桃。半夜,第一只猴子先起來,它把桃分成了相等的五堆,多出乙隻。於是,它吃掉了乙個,拿走了一堆;第二隻猴子起來一看,只有四堆桃。於是把四堆合在一起,分成相等的五堆,又多出乙個。於是,它也吃掉了乙個,拿走了一堆;其他幾隻猴子也都是 這樣分的。問:這堆桃至少有多少個?

2.解決思路:可以痛過遞迴來處理,f(n-1)=4(f(n)-1)/5;中間如果存在(num-1)%5!=0;說明桃子數不符合,如果從5-0,最後能進行到猴子數達到0,說明這個桃子數num符合

3.簡單例項:

/**

* @author: hs

* @description: 猴子分桃

* @date: 2021-02-01 18:36

*/public class monkeybranchpeach

}if (!isok)

}private static boolean check(int monkeys, int peaches)

if ((peaches - 1) % 5 != 0)

peaches = 4 * (peaches - 1) / 5;

return check(monkeys - 1, peaches);

}}

演算法 猴子分桃問題

問題描述 海灘上有一堆桃子,五隻猴子來分。第1只猴子把這堆桃子平均分為五份,多了乙個,這只猴子把多的乙個吃掉,拿走了乙份。第二隻猴子把剩下的桃子又平均分為五份,又多了乙個,它同樣把多的乙個吃掉,拿走了乙份,第3 第4 第5只猴子都是這樣做的。問海灘上原來最少有多少個桃子。演算法分析 假設海灘上原來有...

猴子分桃問題

五隻猴子分桃。半夜,第一只猴子先起來,它把桃分成了相等的五堆,多出乙隻。於是,它吃掉了乙個,拿走了一堆 第二隻猴子起來一看,只有四堆桃。於是把四堆合在一起,分成相等的五堆,又多出乙個。於是,它也吃掉了乙個,拿走了一堆 其他幾隻猴子也都是 這樣分的。問 這堆桃至少有多少個?設桃子總數為s,第一只猴子分...

SDUT 猴子分桃

problem description 老猴子辛苦了一輩子,給那群小猴子們留下了一筆巨大的財富 一大堆桃子。老猴子決定把這些桃子分給小猴子。第乙個猴子來了,它把桃子分成五堆,五堆一樣多,但還多出乙個。它把剩下的乙個留給老猴子,自己拿走其中的一堆。第二個猴子來了,它把桃子分成五堆,五堆一樣多,但又多出...