函式的遞迴呼叫遞迴的定義
函式的遞迴呼叫:是函式巢狀呼叫的一種特殊形式
具體是指:
在呼叫乙個函式的過程中又直接或者間接地呼叫到本身
遞迴的本質就是迴圈
需要強調的的一點是:
遞迴呼叫不應該無限地呼叫下去,必須在滿足某種條件下結束遞迴呼叫
遞迴的兩個階段
回溯:一層一層呼叫下去
遞推:滿足某種結束條件,結束遞迴呼叫,然後一層一層返回
案例:
# 一:遞迴的定義# 函式的遞迴呼叫:是函式巢狀呼叫的一種特殊形式
# 具體是指:
# 在呼叫乙個函式的過程中又直接或者間接地呼叫到本身
# 直接呼叫本身
# def f1():
# print('是我是我還是我')
# f1()
# f1()
# 間接接呼叫本身
# def f1():
# print('===>f1')
# f2()
## def f2():
# print('===>f2')
# f1()
## f1()
# 一段**的迴圈執行的方案有兩種
# 方式一:while、for迴圈
# while true:
# print(1111)
# print(2222)
# print(3333)
# 方式二:遞迴的本質就是迴圈:
# def f1():
# print(1111)
# print(2222)
# print(3333)
# f1()
# f1()
# 二:需要強調的的一點是:
# 遞迴呼叫不應該無限地呼叫下去,必須在滿足某種條件下結束遞迴呼叫
# n=0
# while n < 10:
# print(n)
# n+=1
# def f1(n):
# if n == 10:
# return
# print(n)
# n+=1
# f1(n)
## f1(0)
# 三:遞迴的兩個階段
# 回溯:一層一層呼叫下去
# 遞推:滿足某種結束條件,結束遞迴呼叫,然後一層一層返回
# age(5) = age(4) + 10
# age(4) = age(3) + 10
# age(3) = age(2) + 10
# age(2) = age(1) + 10
# age(1) = 18
# def age(n):
# if n == 1:
# return 18
# return age(n-1) + 10##
# res=age(5)
# print(res)
# 四:遞迴的應用
l=[1,2,[3,[4,[5,[6,[7,[8,[9,10,11,[12,[13,]]]]]]]]]]
def f1(list1):
for x in list1:
if type(x) is list:
# 如果是列表,應該再迴圈、再判斷,即重新執行本身的**
f1(x)
else:
print(x)
f1(l)
函式的遞迴呼叫
乙個函式在它的函式體內呼叫它自身稱為遞迴呼叫。這種函式稱為遞迴函式。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 一段 的迴圈執行的方案有兩種 方式...