函式的遞迴呼叫

2022-09-05 15:48:19 字數 1822 閱讀 5086

函式的遞迴呼叫

遞迴的定義

函式的遞迴呼叫:是函式巢狀呼叫的一種特殊形式

具體是指:

在呼叫乙個函式的過程中又直接或者間接地呼叫到本身

遞迴的本質就是迴圈

需要強調的的一點是:

遞迴呼叫不應該無限地呼叫下去,必須在滿足某種條件下結束遞迴呼叫

遞迴的兩個階段

回溯:一層一層呼叫下去

遞推:滿足某種結束條件,結束遞迴呼叫,然後一層一層返回

案例:

# 一:遞迴的定義

# 函式的遞迴呼叫:是函式巢狀呼叫的一種特殊形式

# 具體是指:

# 在呼叫乙個函式的過程中又直接或者間接地呼叫到本身

# 直接呼叫本身

# 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 一段 的迴圈執行的方案有兩種 方式...