劍指Offer(三) 遞迴問題

2021-09-29 19:26:39 字數 851 閱讀 9066

猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了乙個第二天早上又將剩下的桃子吃掉一半,又多吃了乙個。以後每天早上都吃了前一天剩下的一半零乙個。到第10天早上想再吃時,見只剩下乙個桃子了。求第一天共摘了多少。

此問題與漢諾塔的問題類似,主要是**來實現遞迴求解。最後一天剩1個,那就是當day=1時,桃子的數目為1,當day>1時,第x天的桃子的總數為(x+1)*2,以此類推,計算得結果。

public

class

monquestion

public

static

intpeachnum

(int days)

else

if(days >1)

return0;

}}

#!/usr/bin/env python

# -*- coding: utf-8 -*-

'''@file : riskphone.py

@author: piepis

@date : 2019/11/20 11:22

@desc : 猴子吃桃問題

'''def

peachnum

(days)

:if days ==1:

return

1elif days>1:

return

(peachnum(days-1)

+1)*

2if __name__ ==

'__main__'

:print

(peachnum(10)

)

劍指offer 迴圈遞迴

class solution return res 乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。class solution return res 乙隻青蛙一次可以跳上1級台階,也可以跳上2級 它也可以跳上n級。求該青蛙跳上乙個n級的台階總共有多少種跳法...

劍指offer 樹 遞迴

輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 回溯 coding utf 8 class treenode def init self,x self.val x self.left none self.right none class solution de...

劍指offer 遞迴和迴圈

遞迴雖然比較簡潔,但他同時也有顯著的缺點。遞迴由於是函式呼叫自身,而函式呼叫是有時間和空間的消耗的,每一次函式呼叫都需要在記憶體棧中分配空間以儲存引數 返回位址及臨時變數,而且往棧裡壓入資料和彈出資料都需要時間。1 斐波那契數列 0,1,1,2,3,5,8,13 遞迴 缺陷 重複計算的太多 int ...