牛客 猴子分桃

2021-10-04 07:40:13 字數 827 閱讀 2172

輸入描述:

輸入包括多組測試資料。

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

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

輸出描述:

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

包括兩個整數a,b。

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

示例1輸入5輸出

3121 1025

解題思路

因為每次分5堆都會多出來1個,所以我們借給猴子們4個,以致每次都可以剛好分成5堆 並且,每次給老猴子的桃

子都不在我們借出的那4個中,這樣最後減掉4就可以得到結果。 假設最初由x個桃子,我們借給猴子4個,則此時

有x+4個, 第乙個猴子得到(x+4)/5,剩餘(x+4)(4/5)個 第二個猴子分完後剩餘(x+4) (4/5)^2個 第三個

猴子分完後剩餘(x+4) (4/5)^3個 依次類推,第n個猴子分完後剩餘(x+4)(4/5)^n 要滿足最後剩餘的為整

數,並且x最小,則當 x+4=5n時,滿足要求;此時,x=5n - 4; 老猴子得到的數量為:x+4)*(4/5)^n + n - 4

= 4^n + n - 4 最後的 +n是因為每個小猴子都會多出乙個給老猴子,-4是還了借的4個

#include

< iostream >

#include

using

namespace std;

intmain()

cout << a <<

" "<< b << endl;

}return0;

}

猴子分桃問題

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

SDUT 猴子分桃

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

猴子分桃問題

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