time limit: 1000ms memory limit: 65536k 有疑問?點這裡^_^
老猴子辛苦了一輩子,給那群小猴子們留下了一筆巨大的財富——一大堆桃子。老猴子決定把這些桃子分給小猴子。
第乙個猴子來了,它把桃子分成五堆,五堆一樣多,但還多出乙個。它把剩下的乙個留給老猴子,自己拿走其中的一堆。
第二個猴子來了,它把桃子分成五堆,五堆一樣多,但又多出乙個。它把多出的乙個留給老猴子,自己拿走其中的一堆。
後來的小猴子都如此照辦。最後剩下的桃子全部留給老猴子。
這裡有n只小猴子,請你寫個程式計算一下在開始時至少有多少個桃子,以及最後老猴子最少能得到幾個桃子。
輸入包括多組測試資料。
每組測試資料報括乙個整數n(1≤n≤20)。
輸入以0結束,該行不做處理。
每組測試資料對應一行輸出。
包括兩個整數a,b。
分別代表開始時最小需要的桃子數,和結束後老猴子最少能得到的桃子數。
510
3121 10251 1
設最開始有x個桃子,可以知道 x%5==1 所以我們可以往初始桃子堆中加入4個桃子,那麼(x+4)/5 (一定可以整除)就代表第乙個猴子拿走的那一堆加上老猴的那乙個。然後剩下了(x+4)*(4/5),這時仍然是上面那種多4個桃子的情況,然後第二個猴子拿,最終第n個猴子拿完,剩餘的桃子為 (x+4)*(4/5)^n,這個數要滿足是整數且x盡量小,所以 x+4==5^n;得 x==5^n-4;
然後上述剩餘的桃子加上每次老猴都留下的那個桃子(共n個)然後在減去最開始加的4個桃子,即為老猴剩餘的桃子:4^n+n-4;
#include #include #include #include #include #include #include #include #include #include #include #include #define ll long long
using namespace std;
const int inf = 0x3f3f3f3f;
int main()
return 0;
}
SDUT 1232 猴子分桃
time limit 1000 ms memory limit 65536 kib problem description 老猴子辛苦了一輩子,給那群小猴子們留下了一筆巨大的財富 一大堆桃子。老猴子決定把這些桃子分給小猴子。第乙個猴子來了,它把桃子分成五堆,五堆一樣多,但還多出乙個。它把剩下的乙個留...
五猴子分桃問題,逆推!
題目 海灘上有一堆桃子,五隻猴子來分。第一只猴子把這堆桃子憑據分為五份,多了乙個,這只猴子把多的乙個扔入海中,拿走了乙份。第二隻猴子把剩下的桃子又平均分成五份,又多了乙個,它同樣把多的乙個扔入海中,拿走了乙份,第 三 第四 第五只猴子都是這樣做的,問海灘上原來最少有多少個桃子?畫圖分析 程式分析 五...
SDUT 猴子分桃
problem description 老猴子辛苦了一輩子,給那群小猴子們留下了一筆巨大的財富 一大堆桃子。老猴子決定把這些桃子分給小猴子。第乙個猴子來了,它把桃子分成五堆,五堆一樣多,但還多出乙個。它把剩下的乙個留給老猴子,自己拿走其中的一堆。第二個猴子來了,它把桃子分成五堆,五堆一樣多,但又多出...