python中遞迴的使用

2021-08-02 18:50:58 字數 915 閱讀 1003

python中遞迴函式的使用:

defdivision(n):

print(n)

ifn/2==0:

returnn#遞迴特性一:必須有乙個明確的結束條件

returndivision(n/2)#遞迴特性而:每次遞迴都是為了讓問題規模變小

division(10)#遞迴特性三:遞迴層次過多會導致棧溢位,且效率不高

這種方式執行python檔案會報:recursionerror: maximum recursion depth exceeded while calling a python object錯誤
原因是有小數的存在,有科學技術法的出現會導致遞迴一直進行,所以需要將n/2轉換為int型別
如下:

defdivision(n):

print(n)

ifint(n/2)==0:

returnn#遞迴特性一:必須有乙個明確的結束條件

returndivision(int(n/2))#遞迴特性而:每次遞迴都是為了讓問題規模變小

division(10)#遞迴特性三:遞迴層次過多會導致棧溢位,且效率不高

執行結果如下:
1052

1

遞迴有三大特性,我已經在**注釋中標出!

python中遞迴函式的使用

遞迴函式就是自己呼叫自己的函式,遞迴函式使用過程中應注意呼叫深度,否則計算機無法承受。1.使用遞迴函式實現計算某個數的階乘。def fact n if n 1 return 1return n fact n 1 print fact n 其中n為某個數。1.2用遞迴函式來實現獲取斐波拉契數列中的第n...

python遞迴的使用

函式的巢狀呼叫是 函式巢狀函式。函式的遞迴呼叫 它是一種特殊的巢狀呼叫,但是它在呼叫乙個函式的過程中,又直接或間接地呼叫了它自身。1.1直接呼叫直接呼叫指的是 直接在函式內部呼叫函式自身。import sys print sys.getrecursionlimit 列印最大遞迴層數 3000impo...

python中的遞迴呼叫

1 利用遞迴呼叫求n!def p n if n 0 or n 1 return 1 else return n p n 1 2 利用遞迴求兔子序列 斐波那契數列,分割數列 有人想知道一年內一對兔子可繁殖成多少對,便築了一道圍牆把一對兔子關在裡面。已知一對兔子每乙個月可以生一對小兔子,而一對兔子出生後...