34 函式的遞迴呼叫

2021-10-08 10:56:53 字數 1456 閱讀 7493

# 函式的遞迴呼叫:就是在呼叫乙個函式的過程中又直接或間接地呼叫自己

# 示例1、直接呼叫自己

deffoo()

:print

('hello'

) foo(

)# foo()

# 示例2、間接呼叫自己

# def bar():

# print('from bar')

# foo()##

# def foo():

# print('hello')

# print('from foo')

# bar()##

# foo()

# 為何死遞迴會丟擲異常

# 因為無限的遞迴會導致記憶體溢位,所以python設定了最大的遞迴層數

import sys

# 所以:不應該無限遞迴呼叫下去,應該在滿足某種條件下,結束遞迴呼叫,然後返回

# 二、遞迴呼叫的兩個階段:

# 1、回溯(挖井): 一層一層地遞迴呼叫下去

defs

(n):

if n ==1:

return

18return s(n -1)

+10print

(s(5))

numbers =

[1111,[

2222,[

3333,[

4444,[

55555,[

6666]]

]]]]

deffunc

(l):

for x in l:

iftype

(x)is

list

: func(x)

else

:print

(x)func(numbers)

# 從小到大排列的乙個數字列表

# 二分法查詢

nums =[11

,13,32

,47,53

,63,84

,91]def

b_search

(l,number):if

len(l)==0

:print

('no found'

)return

if l[

len(l)//2

]< number:

right_l = l[

len(l)//2

+1:]

b_search(right_l, number)

elif l[

len(l)//2

]> number:

left_l = l[0:

len(l)//2

] b_search(left_l, number)

else

:print

(f'find '

)b_search(nums,

12)

函式的遞迴呼叫

乙個函式在它的函式體內呼叫它自身稱為遞迴呼叫。這種函式稱為遞迴函式。c語言允許函式的遞迴呼叫。在遞迴呼叫中,主調函式又是被調函式。執行遞迴函式將反覆呼叫其自身。每呼叫一次就進入新的一層。例如有函式f如下 int f int x 這個函式是乙個遞迴函式。但是執行該函式將無休止地呼叫其自身,這當然是不正...

函式的遞迴呼叫

遞迴函式 呼叫自己本身的函式叫遞迴函式 實現如下 main.c define crt secure no warnings include include 遞迴列印字串逆序 int reverse char str if str 0 判斷遞迴結束條件 reverse str 1 printf c s...

函式的遞迴呼叫

函式的遞迴呼叫 是函式巢狀呼叫的一種特殊形式 具體是指 在呼叫乙個函式的過程中又直接或者間接地呼叫到本身 直接呼叫本身 deff1 print 是我是我還是我 f1 f1 間接接呼叫本身 deff1 print f1 f2 deff2 print f2 f1 f1 一段 的迴圈執行的方案有兩種 方式...