n = 1 の場合は 1 である。n = 2 の場合と n = 3 の場合を入れて確かめてみよう。 def -- end の中で、n > 1 ならば、
n かける factorial(n-1)
を実行する。n - 1 = 1 (n = 2 のとき) なので、 factorial(1) = 1 が入る。よって答えは 2 * 1 = 2 を得る。
n = 3 の場合は、 n - 1 = 2 (n = 3 のとき) なので、 factorial(2) をかければよい。 factorial(2) は、前の結果を使って 2 なので、 3 * 2 = 6 を得る。以下同様。
n = 1 の場合を理解したら、n = 2, n = 3 ... と入れ換える。最後に、 n = 1 に # をつけて、残りの # を外して、 入力して答えが得られるようにせよ。
コマンドライン入力で作りかえてみよ。