喜歡西遊記的同學肯定都知道悟空偷吃蟠桃的故事,你們一定都覺得這猴子太鬧騰了,其實你們是有所不知:悟空是在研究乙個數學問題!
什麼問題?他研究的問題是蟠桃一共有多少個!
不過,到最後,他還是沒能解決這個難題,呵呵-
當時的情況是這樣的:
第一天悟空吃掉桃子總數一半多乙個,第二天又將剩下的桃子吃掉一半多乙個,以後每天吃掉前一天剩下的一半多乙個,到第n天準備吃的時候只剩下乙個桃子。聰明的你,請幫悟空算一下,他第一天開始吃的時候桃子一共有多少個呢?
input
輸入資料有多組,每組佔一行,包含乙個正整數n(1output
對於每組輸入資料,輸出第一天開始吃的時候桃子的總數,每個測試例項佔一行。
sample input24
這是乙個遞推問題,需要經過分析給出遞推式或遞推函式。只要有了遞推式或遞推函式問題就解決了。程式可以用遞迴函式實現,也可以用遞推計算實現。
這裡給出的是遞推計算過程。一般而言,遞推計算過程的效率要優於遞迴。
根據題意有f(n)/2-1 = f(n-1),整理後f(n) = 2 * ( f(n-1) + 1 ),另外f(1)=1。這就是遞推關係。
程式說明:(略)。
題記:這個問題有似曾相識的感覺,參見:桃子到底有多少。還有很多這樣的問題,本質上是同乙個問題。
/* hdu2013 蟠桃記 */
/* * 分析問題可以得出以下的遞推函式:
* f(1) = 1 n=1
* f(n) = 2 * ( f(n-1) + 1 ) n>1
* */
#include
intpeach
(int n)
}int
main
(void
)遞推計算方法:
#include
intmain()
printf
("%d\n"
,num)
; num=1;
}return0;
}
1.res = 1l在c中是將1強制為long型賦給long型變數s的意思。顯然s是被定義為long型的,由於c對意即整數預設的是int型,所以將int型1賦給乙個long型變數s時要把1強制為long型,以使=號左右資料型別匹配。不過這裡可以不寫l,因為int型比long型「短」,編譯器會自動使短的向長的看齊——這叫隱式型別轉換。不過寫上l是個好習慣,對於**閱讀具有一定的提示作用。
2.輸入不說明有多少個input block,但以某個特殊輸入為結束標誌。
**如下:
while
(scanf
("%d"
,&n)
&& n!=
0)
自我總結 20170804自我總結
昨天在工作了一年多的公司離職了。2016年6月27日入職九章雲極科技 到2017年8月3日。短短一年之內,自己從乙個新人混到了老員工,自己入職的時候才26個人,目前有80 預計下個月達到100人。自己也在公司內部經歷了轉崗。非常感謝能在畢業的時候,被越哥選中,慢慢的一年內學習了如何做資料整合,自己也...
rand,srand自我總結
rand srand int seed 函式自我總結 srand初始化隨機種子,rand產生隨機數 1 rand 表頭檔案 include 函式頭 int rand rand 會返回一隨機數值,範圍在0至rand max 間。rand max是庫中定義的常量 2 函式二 void srand uns...
java自我總結
動態 動態 可以提供對另乙個物件的訪問,同時隱藏實際物件的具體事實,一般會實現它所表示的實際物件的介面。可以訪問實際物件,但是 延遲實際物件的部分功能,實際物件實現系統的實際功能,物件對客戶 隱藏了實際物件,客戶不知道它是與 打交道還是與實際物件打交道。動態 其實就是給實際物件類包裝了一層,在呼叫實...