Pythonでnの階乗を計算する方法
階乗を求めるにはループか再帰を用いた実装が考えられる。 それぞれをコードで示そう。
- nの階乗をループで求める:
def factorial(n):
result = 1
for i in range(1, n+1):
result *= i
return result
上のコードでは、ループを使って1からnまでを繰り返し、そのたびにそれぞれの数をresultの値と掛け算し、最後にresultを返していますが、これはnの階乗を求めています。
- 再帰を使ってnの階乗を求める:
def factorial(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial(n-1)
上のコード例では、再帰を利用して自然数nの階乗を計算しています。nが0または1のときはそのまま1を返します。それ以外の場合は、nをn-1の階乗の値で掛けた結果を再帰的に求めることで、nの階乗を計算しています。
ファクトリアルは、再帰的または反復的に factorial(n) を呼び出すことで n! を計算できます。例えば、5 のファクトリアルを求めるには factorial(5) と呼び出します。