「猴子分桃」常規遞推解法C

2021-10-24 21:38:26 字數 859 閱讀 9293

*海灘上有一堆桃子,n 只猴子來分。第 1 只猴子把這堆桃子中的 1 個扔

入海中(浪費食物

),然後將剩餘的桃子平均分成 2 份,最後這只猴子拿走了 1 份。第 2 只

猴子來了接著把剩下的桃子中的乙個扔入海中,然後把剩餘的桃子平均分成 2

份,開開心心拿走了 1 份。 第 3 、第 4 、…….,第 n 只猴子都是將剩下

的桃子中的 1 個扔入海中,然後將剩餘的桃子平均分成 2 份, 並拿走其中的 1

份,最後只剩下 1 個桃子,編寫程式,輸入猴子的數量 n,輸出海灘上原有多少

桃子。輸入:乙個正整數 n 表示猴子的數量

輸出:當猴子數量為 n 時,海灘上最少的桃子數

首先,我們要想到。除去猴子拿到的桃子數是 (s-1)/2。

s為拿之前的桃子數量

反過來,想知道前面猴子拿之前的桃子數量, 就是 s*2+1。又知道最後還剩了乙個,

就可以寫成遞推程式

for

(int i=

1;i<=n;i++

)//arr是整型陣列名

又知最後剩了乙個桃

arr[0]

=1;

別忘定義定義整型陣列

int n;

cin>>n;

int arr[n]

;

完整**

#include

using

namespace std;

intmain()

cout<;return0;

}

樣例輸入 2;

樣例輸出 7;

「猴子分桃」常規遞推解法C

海灘上有一堆桃子,n 只猴子來分。第 1 只猴子把這堆桃子中的 1 個扔 入海中 浪費食物 然後將剩餘的桃子平均分成 2 份,最後這只猴子拿走了 1 份。第 2 只 猴子來了接著把剩下的桃子中的乙個扔入海中,然後把剩餘的桃子平均分成 2 份,開開心心拿走了 1 份。第 3 第 4 第 n 只猴子都是...

C 華為OJ 猴子分桃

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

每日程式C語言49 猴子分桃子問題

海灘上有一堆桃子,五隻猴子來分。第一只猴子把這堆桃子平均分為 五份,多了乙個,這只猴子把多的乙個仍入大海中,拿走了乙份。第二隻猴 子把剩下的桃子又平均分成五份,又多了乙個,它同樣把多的乙個扔入大海,拿走了乙份,第三,第四,第五只猴子都是這樣做的,問海灘上原來最少有 多少個桃子?這個題主要是找到剩餘桃...