63猴子摘桃

2021-09-24 17:50:31 字數 1131 閱讀 8199

程式設計訓練63猴子摘桃

問題描述:

五隻猴子一起摘了一堆桃子,因為太累,五隻猴子決定先睡一覺再分。不久,

其中乙隻猴子醒來了,它見別的猴子沒有醒來,便將一堆桃子平均分成 5 份,

結果多了乙個,就將多的這個吃了,拿走其中的乙份並離開。又不久,第二隻猴

子醒來了,它不知道有乙個同伴已經拿走過桃子,便又將剩下的桃子平均分成 5

份,發現也多了乙個,同樣吃了這乙個,拿走其中的乙份。如此類推第 3 只,第

4 只,第 5 只猴子都是這樣分、吃、拿走。問這 5 只猴子至少摘了多少個桃子?

解題思路:

依題意得知,第五只候拿後剩餘的肯定為 4的倍數

不妨從 4 開始 後若不滿足條件 則逐次加4

規律:每次剩餘的數量,減一都是5的倍數。除沒拿之前的總數外,其餘剩餘的都是4的倍數

設最後五隻候完成自己操作後,剩餘的為x, 則有 上一次剩餘的為 x 5/4 +1 遞迴5次 同時滿足所有資料為整數即可*

具體**實現(未優化):

#include

"stdafx.h"

#include

using namespace std;

intpeach

(int x)

int_tmain

(int argc, _tchar* ar**)

break

;// 如果滿足五次的需求則跳出 完成操作!

loop:

p +=4

;}cout << t;

return0;

}

執行截圖:

總數 =

3121

第一只候吃了乙個桃,並且拿了 1

/5 後 剩 2496

第二隻候吃了乙個桃,並且拿了 1

/5 後 剩 1996

第三隻候吃了乙個桃,並且拿了 1

/5 後 剩 1596

第四只候吃了乙個桃,並且拿了 1

/5 後 剩 1276

第五只候吃了乙個桃,並且拿了 1

/5 後 剩 1020

1020/4

=255 滿足需求

005猴子摘桃

猴子吃桃問題 猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了乙個。第二天早上又將第一天剩下的桃子吃掉一半,又多吃乙個。以後每天早上都吃了前一天剩下的一半零乙個。到第十天早上想再吃時,發現只剩下乙個桃子了。編寫程式求猴子第一天共摘了多少個桃子。include intmain void re...

(C語言)猴子摘桃

題目 乙個猴子摘了些桃子,第一天吃掉其中的一半然後多吃了1個,第二天照此方法又吃掉了剩下桃子的一半加1個,以後每天如此,直到第十天早上,猴子發現只剩下了1個桃子,請問猴子第一天總共摘了多少個桃子?輸出 a,b,c,d sum 分別表示 第九天早上沒有吃桃子之前桃子數,第八天早上沒有吃桃子之前桃子數,...

COCI2008 猴子摘桃

動物園內最受歡迎就是猴子了,因為它們除了能爬能跳外還會很多技能。其中a類猴子特別擅長爬樹摘桃,而b類猴子擅長把桃子掰成兩半。a類猴子有n只,編號為1到n,b類猴子有m只,編號為1到m。a類猴子中的第k只摘到第乙個桃子需要花費a k秒,此後每b k秒就能摘到桃子 b類猴子中的第k只掰開第乙個桃子需要花...