C 華為OJ 猴子分桃

2022-09-23 13:30:12 字數 1225 閱讀 5207

【題目描述】

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

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

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

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

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

【輸入】

輸入包括多組測試資料。

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

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

【輸出】

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

包括兩個整數a,b。

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

【示例輸入】

5【示例輸出】

3121 1025

1 1【演算法思想】

求特徵函式: a1=a1-(a1-1)/5 ;a1=1

求通項公式 :=q^(n-1)=(4/5)^(n-1)【屌絲**】

#include

#include

int main()

int n, i;

int sum, l, t;

while (scanf(%d, &n)==1 && n)

l = 1;

for (i=1; i

l *= 5;

sum = 1+5*(l-1);

t = sum;

for (i=1; i<=n-1; i++)

t = (t-1)/5*4;

printf(%d %d , sum, t+n);

printf(%d %d , sum, t+n);

return 0;

【吊軌**】

#include

#include

using namespace std;

int main()

int n;

long long total_num,old_num;

while(cin>>n && n!=0)

total_num=pow(5,n)-4;

old_num=n+pow(0.8,n)*pow(5,n)-4;

cout<

return 0;

猴子分桃問題

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

SDUT 猴子分桃

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

猴子分桃問題

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