程式設計訓練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只掰開第乙個桃子需要花...