過去問解きまくり研究所 ホーム

平成25年度 春期 午前 問6

基礎理論

fact (n)の再帰的な定義

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

答えと解説を見る

✓ これが正解ウif n=0 then return 1 else return n×fact (n−1)

解説

0 のときは 1 を返し、引数を 1 減らす形です。

四つの式は、二つの点でしか違いません。一つは 0 を受け取ったときに返す値、もう一つは自分を呼び直すときの引数です。この二つを別々に決めれば、答えは一つに絞れます。まず返す値です。階乗の定義では 0 の階乗は 1 と決まっています。ここを 0 にすると掛け算の連鎖に 0 が混ざり、どの値を渡しても結果が 0 になってしまいます。次に引数です。再帰は、呼び出すたびに止まる条件へ近づくことで終わります。引数を増やす向きにすると 0 へ届かず、呼び出しが終わりません。二つを満たす式で 3 の階乗を計算すると、3 が 2 を呼び、2 が 1 を呼び、1 が 0 を呼んで 1 が返り、掛け戻して 6 が得られます。再帰の定義を見るときは、止まったときに正しい値を返すかと、止まる条件へ近づく向きかの二点を確かめます。

ほかの選択肢はなぜ違うのか

出典:平成25年度 春期 応用情報技術者試験 午前 問6

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)