SDUT 1232 猴子分桃 逆推

2021-06-26 12:58:20 字數 1095 閱讀 5040

time limit: 1000ms   memory limit: 65536k  有疑問?點這裡^_^

老猴子辛苦了一輩子,給那群小猴子們留下了一筆巨大的財富——一大堆桃子。老猴子決定把這些桃子分給小猴子。

第乙個猴子來了,它把桃子分成五堆,五堆一樣多,但還多出乙個。它把剩下的乙個留給老猴子,自己拿走其中的一堆。

第二個猴子來了,它把桃子分成五堆,五堆一樣多,但又多出乙個。它把多出的乙個留給老猴子,自己拿走其中的一堆。 

後來的小猴子都如此照辦。最後剩下的桃子全部留給老猴子。 

這裡有n只小猴子,請你寫個程式計算一下在開始時至少有多少個桃子,以及最後老猴子最少能得到幾個桃子。

輸入包括多組測試資料。

每組測試資料報括乙個整數n(1≤n≤20)。 

輸入以0結束,該行不做處理。

每組測試資料對應一行輸出。

包括兩個整數a,b。 

分別代表開始時最小需要的桃子數,和結束後老猴子最少能得到的桃子數。

5

10

3121 1025

1 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 老猴子辛苦了一輩子,給那群小猴子們留下了一筆巨大的財富 一大堆桃子。老猴子決定把這些桃子分給小猴子。第乙個猴子來了,它把桃子分成五堆,五堆一樣多,但還多出乙個。它把剩下的乙個留給老猴子,自己拿走其中的一堆。第二個猴子來了,它把桃子分成五堆,五堆一樣多,但又多出...