python之遞迴函式

2022-08-04 17:42:12 字數 1932 閱讀 5896

遞迴的特點:

遞迴演算法是一種直接或間接呼叫自身演算法的過程,簡潔而且易於理解

遞迴演算法解決特點:

--遞迴就是在過程或函式裡呼叫自身

--在使用遞迴策略時,必須有乙個明確的遞迴結束條件,稱為遞迴出口

--遞迴演算法解題很簡潔,但運算效率較低,所以不提倡用遞迴演算法設計程式

--在遞迴呼叫的過程中系統為每一層的返回點,區域性量等開闢了棧來儲存,遞迴次數過多容易造成棧溢位等.

遞迴的要求:

**每次呼叫在規模上都有所縮小(通常是減半)

**是相鄰兩次重複之間有緊密的聯絡,前一次要為後一次做準備(通常前一次的輸出作為後一次的輸入)

**在問題的規模極小時必須用直接給出解答而不再進行遞迴呼叫,因而每次遞迴呼叫都是有條件的,無條件遞迴呼叫將會成為死迴圈而不能正常結束

def recursion(i):   #

定義函式

print

(i)

if i/2 > 1: #

判斷遞迴條件,退出

re = recursion(i/2) #

遞迴函式自身

print('

返回值:

',re)

print('

上層遞迴值:

',i)

return i #

返回值recursion(10)

#執行原理:首先執行函式傳參10給函式,列印10,判斷條件滿足,遞迴

#函式引數值為(10/2)5,列印i的值5,等遞迴到1.25時,判斷條件不滿

#足後,才列印上層遞迴的值,此時遞迴的值為1.25,return遞迴最後一

#層的值1.25,退出最後一層遞迴,繼續一層層退出遞迴,最後返回最上層

#遞迴值結束函式。

105.0

2.51.25上層遞迴值: 1.25返回值: 1.25上層遞迴值: 2.5返回值: 2.5上層遞迴值: 5.0返回值: 5.0上層遞迴值: 10複製**

斐波那契數列:就是前兩個數的和為後乙個數的值(0,1,1,2,3,5,8,13.........)

複製**

deffoo(arg1,arg2,stop):

if arg1 ==0:

print

(arg1,arg2)

arg3 = arg1 +arg2

print

(arg1,arg2,arg3)

if arg3 < stop: #

判斷套件不滿足時退出遞迴

foo(arg2,arg3,stop) #

遞迴函式,傳送引數arg2,arg3,stop給arg1,arg2,stop

foo(0,1,50)

0 10 1 1

1 1 2

1 2 3

2 3 5

3 5 8

5 8 13

8 13 21

13 21 34

21 34 55

def

foo(arg1,arg2,stop):

if arg1 ==0:

print

(arg1,arg2)

arg3 = arg1 +arg2

print

(arg1,arg2,arg3)

if arg3 < stop: #

判斷套件不滿足時退出遞迴

foo(arg2,arg3,stop) #

遞迴函式,傳送引數arg2,arg3,stop給arg1,arg2,stop

foo(0,1,50)

0 10 1 1

1 1 2

1 2 3

2 3 5

3 5 8

5 8 13

8 13 21

13 21 34

21 34 55

數列

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 遞迴的出口很重要,否則會出現死迴圈 遞迴案例 計算數字累加 需求 定...