# 函式的遞迴呼叫:就是在呼叫乙個函式的過程中又直接或間接地呼叫自己
# 示例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 一段 的迴圈執行的方案有兩種 方式...