猴子分蘋果

2021-10-24 19:57:16 字數 841 閱讀 7927

有5只猴子在海邊發現一堆桃子,決定第二天來平分.第二天清晨,第一只猴子最早來到,它左分右分分不開,就朝海浬扔了乙隻,恰好可以分成5份,它拿上自己的乙份走了.第2,3,4,5只猴子也遇到同樣的問題,採用了同樣的方法,都是扔掉乙隻後,恰好可以分成5份.問這堆桃子至少有多少只?

先給這些猴子4個桃子,  

第1只猴子多了4個桃子正好分成五份,拿走自己的部分(一堆多1個,給他的4個桃子留給第二個猴子);    

第2只猴子多了4個桃子正好分成五份,拿走自己的部分(一堆多1個,給他的4個桃子留給第三個猴子);  

…………………

第5只猴子多了4個桃子正好分成五份,拿走自己的部分;    

這就是說,有了這4個桃子,每次猴子都可以平均分成5份,可見,原來的總數必須是5的5次方的倍數,即3125,所以原來有3121個。

先給四個的目的是湊整,這樣就當做扔掉的也被第乙個拿走了,這樣每次都可以除盡。5只猴子需要除盡五次,所以需要5^5次方。那麼可列式x+4=5^5解決。

在這裡,每只猴子都取剩下的m個蘋果和平分的那些,不妨令每只猴子拿走了這樣,這樣的話先新增(n-1)*m個蘋果,這樣雖然第一只猴子拿掉了m+x/n個蘋果,但是預先給的沒有拿走,對於第二隻猴子仍然滿足平分,n只猴子平分完還可以再平分,也就是n^(n+1),所以可列式x+(n-1)*m=n^(n+1);

#include#include#include#include#include#include#include#includeusing namespace std;

typedef long long ll;

const int maxn = 1e6+50;

int main()

猴子分蘋果

題目 海灘上有一堆蘋果是n只猴子的共同財產,準備平均分配。第一只猴子先到,它見別的猴子遲遲不來,說把蘋果平均分成n堆,把多餘的乙個丟到海浬,並拿走了其中一堆。第二隻猴子以及後面的猴子都照此辦,說把蘋果平均分成n堆,把多餘的乙個丟到海浬,並拿走其中的一堆蘋果。程式設計求出原來的至少有多少個蘋果。inc...

演算法訓練 猴子分蘋果

問題描述 秋天到了,n只猴子採摘了一大堆蘋果放到山洞裡,約定第二天平分。這些猴子很崇拜猴王孫悟空,所以都想給他留一些蘋果。第一只猴子悄悄來到山洞,把蘋果平均分成n份,把剩下的m個蘋果吃了,然後藏起來乙份,最後把剩下的蘋果重新合在一起。這些猴子依次悄悄來到山洞,都做同樣的操作,恰好每次都剩下了m個蘋果...

演算法訓練 猴子分蘋果

問題描述 秋天到了,n只猴子採摘了一大堆蘋果放到山洞裡,約定第二天平分。這些猴子很崇拜猴王孫悟空,所以都想給他留一些蘋果。第一只猴子悄悄來到山洞,把蘋果平均分成n份,把剩下的m個蘋果吃了,然後藏起來乙份,最後把剩下的蘋果重新合在一起。這些猴子依次悄悄來到山洞,都做同樣的操作,恰好每次都剩下了m個蘋果...