網頁

2025年7月21日 星期一

Python 遞迴函式

 一、主題介紹:

遞迴函式顧名思義就是可以重複呼叫自己本身的函式,雖然遞迴函式可以使用 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 的狀況;反之,如果使用遞迴函式來寫計算階乘程式,就可以全面的考慮到階乘等於零、大於零、或小於零的情形,富有彈性、可讀性及邏輯性。



沒有留言:

張貼留言

TQC+ Python 證照考題評量(五十四) - 平均溫度

 一、主題介紹: 資料庫中的一堆數據資料,時常需要這些資料的平均值、最大值、與最小值,作為分析資料的依據,如能透過寫程式讓它們自動化就能增加效率,就來看看今天的 TQC+ 考題的練習。 (1) 題目 請撰寫一程式,讓使用者輸入四週各三天的溫度,接著計算並輸出這四週的平均溫度及最高...