猴子分桃子問題

2021-09-25 05:57:40 字數 1050 閱讀 1530

海灘上有一堆桃子,五隻猴子來分。第一只猴子把這堆桃子均分為5份,多了乙個,然後這只猴子把多的乙個桃子扔到了海中,拿走了乙份。第二隻猴子把剩下的桃子均分成五份,發現也多了乙個,然後也將多的乙個扔到了海浬,拿走了乙份。第三隻、第四只、第五只猴子都是這樣做的,問海灘上原來至少有多少個桃子?

我們可以假設最後乙隻猴子拿到的那份桃子的數量為n,則:

我們可以先假定第五只猴子分到的桃子數為1,然後依次往上推第四只猴子分到的桃子數,然後再由第四只猴子分到的桃子數逆推第三隻猴子分到的桃子數,依次逆推第二隻、第一只,最終得到第一只猴子分到的桃子數,最後再由第一只猴子分到的桃子數,求得開始沙灘上桃子的總數。

在逆推的過程中,每一次求得第i只猴子分到的桃子數後,要通過5×

\times

×n+1 求得第i只猴子分桃子之前沙灘上存在的桃子數量,同時需要判斷該數是否能夠被4整除,因為沙灘上存在的桃子數,是上乙隻猴子分過桃子之後剩餘的四份,所以一定能夠被4整除。

當上述判斷條件不滿足時,就將第五只猴子分到的桃子數加1,再重新進行運算。

第一種是返回的最終結果是第一只猴子分到的桃子數,然後在輸出時再乘以5加上1,獲得最終結果。

public

static

void

main

(string[

] args)

middlepeach = allpeach /4;

count++;}

} system.out.

println

("沙灘上至少有 "

+(middlepeach *5+

1)+" 個桃子。"

)}

第二種是直接最終結果返回的就是沙灘上桃子總數

public

static

void

main

(string[

] args)

if(allpeach %4!=

0)middlepeach = allpeach /4;

count++;}

}}

猴子分桃問題

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

猴子分桃問題

5只猴子分一堆桃子,怎麼也不能分成5等份,只好先去睡覺,準備第二天再分。夜裡1只猴子偷偷爬起來,先吃掉1個桃子,然後將其分成5等份,藏起自己的乙份就去睡覺了 第2只猴子又爬起來,吃掉1個桃子後,也將桃子分成5等分,藏起自己的乙份睡覺去了 以後的3只猴子都先後照此辦理。問最初至少有多少個桃子?倒過來想...

猴子分桃問題

5只猴子分一堆桃子,怎麼也不能分成5等份,只好先去睡覺,準備第二天再分。夜裡1只猴子偷偷爬起來,先吃掉1個桃子,然後將其分成5等份,藏起自己的乙份就去睡覺了 第2只猴子又爬起來,吃掉1個桃子後,也將桃子分成5等分,藏起自己的乙份睡覺去了 以後的3只猴子都先後照此辦理。問最初至少有多少個桃子?倒過來想...