nの階乗を再帰的に計算する関数F(n)の定義において,aに入れるべき式はどれか。
ここで,nは非負の整数とする。
n>0のとき,F(n)= a
n=0のとき,F(n)=1
正答3
解説
正解は3です。
nの階乗n!は、1からnまでの整数をすべて掛けた値です。
n!=n×(n-1)!という関係があるので、F(n)はF(n-1)にnを掛けて求められます。
n=0のときF(n)=1と定めて、再帰呼出しを終わらせます。
【選択肢別解説】
1:× n+F(n-1)は、足し算で1からnまでの合計を求める式です。
階乗は掛け算なので誤りです。
2:× n-1+F(n)は、右辺に自分自身のF(n)を含みます。
nが小さくならず再帰が終わらないうえ、掛け算でもありません。
3:○ n×F(n-1)は、n!=n×(n-1)!をそのまま表しています。
nが1ずつ減り、F(0)=1で再帰が止まります。
4:× (n-1)×F(n)は、右辺に自分自身のF(n)を含みます。
再帰が終わらず、階乗の定義とも一致しません。
【ポイント】
再帰的定義では、引数を小さくして自分自身を呼び出す式と、呼出しを止める終了条件の2つが必要です。
例えばF(3)は、3×F(2)=3×2×F(1)=3×2×1×F(0)=6と計算されます。