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