python 遞迴(十分厲害的操作我認為)

2021-09-25 09:56:14 字數 1440 閱讀 8235

遞迴操作其實用處還挺廣泛的,個人認為在秋招中也屬於面試官常考問題之一。列舉幾個經典的例子來幫助自己理解一下遞迴這個牛13的操作。最近才搞懂一點點。

example-1:  實現的階乘。

這個題如果不知道的遞迴的我來寫,肯定是要寫for迴圈。但是用遞迴的話其實就很簡單了。(遞迴中要重點考慮終止條件)

def jiecheng(n):

if n==1:

return 1

return n*jiecheng(n-1)

example-2:求整數n的冪

class solution:

def mypow(self, x: float, n: int) -> float:

if n < 0:

x = 1/x

n = -n

if n == 0:

return 1

if n == 1:

return x

if n % 2 == 0:

return self.mypow(x, n/2)**2

else:

return self.mypow(x, n-1) * x

example-3:二叉樹反轉

class solution:

def inverttree(self, root: treenode) -> treenode:

if not root:

return root

node = root

#print(node)

if node:

node.left, node.right = node.right, node.left

self.inverttree(node.left)

self.inverttree(node.right)

return root

example-4:斐波那契數列(爬樓梯)

斐波那契數列是指當前位數字前兩位數之和,例如[1,2,3,5,8,13...],求第n位斐波那契數。

#digui#

def feibonaqi(n):

if n == 1 or n ==2:

return 1

else:

return feibonaqi(n-1)+feibonaqi(n-2)

#feidigui_1#

def geibonaqi(n):

res=[0,1]

while len(res)return res[n]

#feidigui_2#

def feibonaqi(n):

a=0b=1

res=

while b<10000:

a,b = b,a+b

return res

十分鐘完成的作業系統

買了一本于淵的 orange s 乙個作業系統的實現 很是感謝作者的分享,正如作者所說的 os from scratch 於是想把學習過程中碰到的問題和心得記錄下來.好吧,直接進入主題,引導扇區,如下 作者已經把扇區的引導說的很清楚了,我就不再贅述了,我們重點看看這段 要幹什麼 其實就是在顯示器上列...

十分鐘的代價

2008年9月15日上午10 00,擁有158年歷史的美國第四大投資銀行 雷曼兄弟公司向法院申請破產保護,訊息轉瞬間通過電視 廣播和網路傳遍地球的各個角落。令人匪夷所思的是,在如此重大的情況下,德國國家發展銀行在十分鐘後,居然按照外匯掉期協議的交易,通過計算機自動付款系統,向雷曼兄弟公司即將凍結的銀...

十分鐘的悲劇

2008年9 月15日上午 10 00 擁有158 年歷史的美國第四大投資銀行 雷曼兄弟公司向法院申請破產保護,訊息轉瞬間通過電視 廣播和網路傳遍地球的各個角落。令人匪夷所思的是,在如此明朗的情況下,德國國家發展銀行 10 10 居然按照外匯掉期協議的交易,通過計算機自動付款系統,向雷曼兄弟公司即將...