Pythonでnの階乗を計算する方法

階乗を求めるにはループか再帰を用いた実装が考えられる。 それぞれをコードで示そう。

  1. nの階乗をループで求める:
def factorial(n):
    result = 1
    for i in range(1, n+1):
        result *= i
    return result

上のコードでは、ループを使って1からnまでを繰り返し、そのたびにそれぞれの数をresultの値と掛け算し、最後にresultを返していますが、これはnの階乗を求めています。

  1. 再帰を使って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) と呼び出します。

bannerAds