本文將介紹如何使用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-tw/n/375474.html
微信掃一掃
支付寶掃一掃