3 回答

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊
最簡(jiǎn)單的方法:math.factorial(x)(在2.6及更高版本中可用)。
如果您想/必須自己編寫(xiě),請(qǐng)使用類(lèi)似
def factorial(n):return reduce(lambda x,y:x*y,[1]+range(1,n+1))
或更易讀:
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
與往常一樣,Google是您的朋友;)

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
在Python 2.6及更高版本上,請(qǐng)嘗試:
import math
math.factorial(n)

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊
確實(shí)沒(méi)有必要,因?yàn)檫@是一個(gè)很舊的線程。但是我在這里做的另一種方法是使用while循環(huán)來(lái)計(jì)算整數(shù)的階乘。
def factorial(n):
num = 1
while n >= 1:
num = num * n
n = n - 1
return num
添加回答
舉報(bào)