応用情報技術者試験 2013年度 = 平成25年度・春期 午前 問6

 fact(n )は、非負の整数n に対してnの階乗n !を返す。fact(n )の再帰的な定義はどれか。

ア if n = 0 then return 0 else return n ×fact(n - 1);
イ if n = 0 then return 0 else return n ×fact(n + 1);
ウ if n = 0 then return 1 else return n ×fact(n - 1);
エ if n = 0 then return 1 else return n ×fact(n + 1);

解答



解説

 整数nの階乗は以下のように再帰的に定義されます。
  (a) 0! = 1
  (b) n > 0ならば n ! = n × (n - 1)!
たとえば、10の階乗である10!は、(b)によって
  10! = 10 × 9!
と求めることができます。もちろん、右辺の9!は、
  9! = 9 × 8!
によって得られます。一般的に表現するために、nの階乗を求める手続きをfact(n )とすると、10!および9!は、次のようになります。
  10! = 10 × fact(9)
  9! = 9 × fact(8)
すなわち、n が0より大きいときのfact(n )は、n とfact(n - 1)を掛け合わせたものです。


BohYoh.comトップページへ