2022年01月31日 更新

再帰関数について

どうも、クラゲジュニアです。

再帰関数とは

簡単に言うと、自分自身を何度も呼び出す関数です。
使い方次第でコードを効率的に書くことができ、探索アルゴリズムや木構造などで使われています。

例:階乗計算

再帰関数を使って5の階乗(5!)を求める例です。

def func(x):
    if x == 0 or x == 1: # ※1
        return 1
    else:
        return x * func(x - 1) # ※2

print(func(5))

※1の条件分岐で関数の終了条件を記載します。
上記の例では、xに0もしくは1が渡されたタイミングで1を返して関数を終了します。
※2の処理で、自分自身を呼び出します。

※1の終了条件を書いておかないと、スタックオーバーフローが生じてしまうため注意が必要です。

以上です。