藍橋杯試題 演算法提高 猴子吃桃問題 C C

2021-10-03 15:44:47 字數 1058 閱讀 3122

資源限制

時間限制:1.0s 記憶體限制:256.0mb

問題描述

猴子吃桃問題:猴子摘下若干個桃子,第一天吃了桃子的一半多乙個,以後每天吃了

前一天剩下的一半多乙個,到第n天吃以前發現只剩下乙個桃子,

要求編寫函式getnumber(int n)求出猴子共摘了幾個桃子。

輸入格式

輸入整數n。

輸出格式

輸出整數m。

樣例輸入

乙個滿足題目要求的輸入範例。例:3

樣例輸出

與上面的樣例輸入對應的輸出。

例:10

資料規模和約定

輸入的整數2<=n<=30.

思路:本題題中已經說明需要編寫乙個在getnumber函式中的求n天桃子的核心**片段,所以我們可以不用輸出,直接用呼叫過來的n,而題中說第n天剩下乙個桃子,說明只需要計算n-1天即可,而題中說明每次都可以平分,說明每天的桃子數量必須為偶數,只要當天的桃子數不為偶數即不符合條件,從桃子數量為1開始挑選,直到n-1次計算完成(必須計算n-1次,有些會只滿足一次條件,但這不是所需要的答案),符合條件的即為正確答案。

核心片段**如下(完整**在這段**的下面):

int i=

1,j,k;

while(1

)else}if

(k==

1&& j==n-1)

}return i;

完整**如下:

#include

#include

using

namespace std;

void

checkanswer()

;/**********program**********/

intgetnumber

(int n)

else}if

(k==

1&& j==n-1)

}return i;

}/********** end **********/

intmain()

猴子吃桃問題 php,趣味演算法 猴子吃桃問題

簡明現代魔法 c c 趣味演算法 猴子吃桃問題 趣味演算法 猴子吃桃問題 2010 05 26 猴子第一天摘下若干桃子,當即吃了一半,還不過癮,又多吃了乙個。第二天早上又將剩下的桃子吃掉一半,又多吃了乙個。以後每天早上都吃了前一天剩下的一半零乙個。到第10天早上想再吃時,見只剩下乙個桃子了。求第一天...

猴子吃桃演算法

猴子第一天摘下若干個桃子,當即吃了一半,還不過癮就多吃了乙個。第二天早上又將剩下的桃子吃了一半,還是不過癮又多吃了乙個。以後每天都吃前一天剩下的一半再加乙個。到第10天剛好剩乙個。問猴子第一天摘了多少個桃子?這是乙個很經典的遞迴演算法,只要找到遞迴公式就迎刃而解 第n天桃子總數 第n天桃子總數 2 ...

猴子吃桃演算法

猴子吃桃問題 猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一 個 第二天早上又將剩下的桃子吃掉一半,又多吃了乙個。以後每天早上都吃了前一天剩下的一半零一 個。到第 10 天早上想再吃時,見只剩下乙個桃子了。求第一天共摘了多少。程式分析 採取逆向思維的方法,從後往前推斷。下面用了for迴圈...