#はじめに
自分が初めて再帰関数を知ったときに、理解するのに苦労しました。
その際に紙に書いたことで理解できたので、それを今回図解しました。
####再帰関数とは?
def ~ end
で定義した関数内で自分自身を呼び出す関数のことをいいます。
有名なものだとフィボナッチ関数などがよく再帰関数の入門として扱われたりします。
初めて聞いた方は検索してみてください。
####階乗とは
1からnまでの連続するn個の自然数の積をnの階乗という。
n!と書き、例えば4!=1×2×3×4=24と表す。
ただし、0の階乗は1とする。
引用元:goo辞書
#再帰関数を用いたコード
def factorial(num)
if num == 1 || num == 0
return 1
end
return num * factorial(num - 1)
end
※num < 0
が渡されてしまった場合は今回は考慮していません。
非常にシンプルなコードですが、脳内で考えていると意外と混乱します。
#終わりに
まだまだ再帰関数初心者なので複雑なものは私もまだ混乱します。
ただ、今回図解したコードなどが基本になっていると思うので迷った時は初心に戻ろうと思います。
この記事がどなたかの再帰関数理解の一助になれば幸いです。