本文將介紹如何使用Python定義函數fact(n),計算n的階乘。
一、什麼是階乘
階乘指從1乘到指定數之間所有整數的乘積。如:5! = 5 * 4 * 3 * 2 * 1 = 120,符號「!」即階乘。
計算階乘常用於概率、組合等數學問題中。
二、Python實現計算階乘
def fact(n): if n == 0: return 1 else: return n * fact(n-1)
上述代碼使用Python定義了一個計算階乘的函數fact(n)。
函數實現思路:當n等於0時,返回1;否則,返回n乘以(n-1)的階乘。
調用該函數計算5的階乘:
result = fact(5) print(result)
輸出結果為:120。
三、遞歸函數的性能問題
上述代碼使用了遞歸實現,遞歸用起來簡潔明了,但遞歸調用過程中會開闢多層棧,消耗大量內存。在計算較大數字的階乘時,會導致棧溢出。
因此,對於計算較大數的階乘,建議使用循環方式實現,如下所示:
def fact(n): result = 1 for i in range(1, n+1): result *= i return result
與遞歸方式相比,循環方式消耗的內存更少,計算速度更快,更為可靠。
四、思考題
除了使用循環方式外,您是否有其他實現計算階乘的方法?請分享您的思路和代碼。
原創文章,作者:BRHTK,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/375474.html