基礎プログラミング II 第 5 回 (何度も呼び出そう) 「階乗計算」 講義ノート目次

階乗の計算、カードの並べ替え、ハノイの塔、 などは実は同じことの繰り返しである。 まずは階乗計算をプログラムにしたものを見てみよう。

「ある正の整数 n について、その階乗を求めよ。」という定義は、

n! = n * (n-1) * (n-2) * ... * 2 * 1

である。これの意味するところは「n から順番に一つ小さい数を掛けていって、 1 になるまで求めよ」である。もちろん while -- end や for -- end を使ってもよいが、method を用いることもできる。 def_factorial.rb



#!/usr/koeki/bin/ruby

def factorial(m)
  if m == 1
    1
  else
    m * factorial(m-1)
  end
end

n = 1
# n = 2
# n = 3
# n = gets.chomp.to_i

printf("%dの階乗は%dです\n", n, factorial(n))