資源限制
時間限制: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迴圈...