Python で整数の階乗を計算するにはどうすればよいですか?
ベストアンサー1
最も簡単な方法はmath.factorial
(Python 2.6 以降で利用可能):
import math
math.factorial(1000)
自分で書きたい場合や書かなければならない場合は、反復的なアプローチを使用できます。
def factorial(n):
fact = 1
for num in range(2, n + 1):
fact *= num
return fact
または再帰的アプローチ:
def factorial(n):
if n < 2:
return 1
else:
return n * factorial(n-1)
注意:階乗関数は正の整数に対してのみ定義されるので、またn >= 0
、isinstance(n, int)
そうでなければ、ValueError
またはTypeError
それぞれ、math.factorial
こちらが対応させていただきます。