2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【図解】階乗の再帰関数【Ruby】

Posted at

#はじめに
自分が初めて再帰関数を知ったときに、理解するのに苦労しました。
その際に紙に書いたことで理解できたので、それを今回図解しました。

####再帰関数とは?
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が渡されてしまった場合は今回は考慮していません。

非常にシンプルなコードですが、脳内で考えていると意外と混乱します。

#図解
スクリーンショット 2020-10-16 22.45.16.png

#終わりに
まだまだ再帰関数初心者なので複雑なものは私もまだ混乱します。
ただ、今回図解したコードなどが基本になっていると思うので迷った時は初心に戻ろうと思います。

この記事がどなたかの再帰関数理解の一助になれば幸いです。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?