python之遞迴函式

2022-07-15 16:54:10 字數 1406 閱讀 4336

一、初識遞迴

遞迴的定義:在乙個函式裡在呼叫這個函式本身

遞迴的最大深度--- 997 1

deffunc(n):

2print

(n)

3 n += 1 4

func(n)

5 func(1)

修改預設值 1

import

sys

2print(sys.setrecursionlimit(100000))

二、遞迴例項

alex老師多大了?我說我不告訴你,但alex比 egon 大兩歲。

你想知道alex多大,你是不是還得去問egon?egon說,我也不告訴你,但我比武sir大兩歲。

你又問武sir,武sir也不告訴你,他說他比金鑫大兩歲。

那你問金鑫,金鑫告訴你,他40了。。。

這個時候你是不是就知道了?alex多大?

1

defage(n):

2if n == 1:

3return 40

4else:5

return age(n-1)+267

print(age(4))

三、二分查詢法

# 查詢演算法

# l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]

# 從有序的列表中查詢值66的位置

# 方法一: 迴圈 # 5000000 4999999

# 方法二: l.index(66) #最正確的方法

# 方法三: 遞迴

1

def find(l,aim,start=0,end=none):

2if end == none:end = len(l)-1

3if start <=end:

4 mid = (end - start) // 2 +start

5if l[mid] >aim:

6return find(l,aim,start=start,end = mid-1)

7elif l[mid]

8return find(l,aim,start=mid+1,end=end)

9elif l[mid] ==aim:

10return

mid11

else:12

return

none

13 l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]

14print('

ret :

',find(l,18))

view code

python函式之遞迴函式

在計算機程式設計裡,遞迴指的是乙個過程 函式不斷引用自身,直到引用的物件已知。1 自己呼叫自己 2 必須有乙個明確的結束條件 優點 缺點 計算n的階乘 def factorial n if n 1 return 1 fac n factorial n 1 return fac n 5print 的階...

Python之遞迴函式

如果乙個函式在函式內部呼叫函式本身,那麼這個函式就是遞迴函式。例如用遞迴函式計算階乘。deffact n if n 1 return 1.return n fact n 1 fact 1 1 fact 7 5040 fact 999 traceback most recent call last f...

python之函式遞迴

函式的遞迴 函式呼叫自身的程式設計技巧稱為遞迴 遞迴函式的特點 特點 特點 函式內部的 是相同的,只是針對引數不同,處理的結果不同當引數滿足乙個條件時,函式不再執行 示例 def sum numbers num print num 遞迴的出口很重要,否則會出現死迴圈 遞迴案例 計算數字累加 需求 定...