一、主題介紹:
遞迴函式顧名思義就是可以重複呼叫自己本身的函式,雖然遞迴函式可以使用 for 或 while 迴圈程式來取代,但是遞迴函式的邏輯可讀性還是比用迴圈方式還要好,例如: 如果使用迴圈來寫計算階乘的程式,就沒辦法考慮到靈皆成了( 0 ! )。
二、範例程式:
#使用迴圈
a=1
for i in range(1,6):
a = a*i
print("5!= ",a)
#執行結果
5!= 120
#使用遞迴函式
def factorial(n):
if n==0 :
return 1
elif n>0 :
return n*factorial(n-1)
else :
return -1
print("0!= ",factorial(0))
print("1!= ",factorial(1))
print("2!= ",factorial(2))
print("3!= ",factorial(3))
print("4!= ",factorial(4))
print("5!= ",factorial(5))
#執行結果
0!= 1
1!= 1
2!= 2
3!= 6
4!= 24
5!= 120
三、程式說明:
如果使用迴圈來計算階乘就只能依照程式寫好的數字範圍計算階乘,無法靈活應用於其它數字的階乘,由此可見用迴圈寫較沒有彈性,而且也沒辦法考慮到 0!=1 的狀況;反之,如果使用遞迴函式來寫計算階乘程式,就可以全面的考慮到階乘等於零、大於零、或小於零的情形,富有彈性、可讀性及邏輯性。
沒有留言:
張貼留言