fact(n)は,非負の整数nに対してnの階乗を返す。fact(n)の再帰的な定義はどれか。
平成29年度 秋期 応用情報技術者 問7
テクノロジ系
正解と解説
正解 ウ
階乗は0!=1を終了条件とし、n!=n×(n−1)!と1つ小さい値を呼び出して定義します。
階乗の定義は0!=1、n!=n×(n−1)!(n≧1)です。再帰的な定義には、再帰を止める終了条件と、問題を小さくする再帰呼出しの2つが必要です。ウでfact(3)を追うと、3×fact(2)、3×2×fact(1)、3×2×1×fact(0)となります。fact(0)が1を返すので、結果は6です。
ア:fact(0)が0を返すので、掛け算の最後に0が掛かり、どのnでも結果が0になります。
イ:fact(n+1)はnを増やしながら呼び出すので、n=0に到達せず再帰が終わりません。終了条件の0も誤りです。
エ:fact(n+1)はnを増やしながら呼び出すので、n≧1から始めるとn=0に到達せず、再帰が終わりません。
出典:平成29年度 秋期 応用情報技術者試験 問7
全年度から出題。10問で実力を判定します。登録不要。
出典:平成29年度 秋期 応用情報技術者試験 問7(独立行政法人情報処理推進機構)
解説と用語ページは生成 AI が書き、別の生成 AI が確かめています。作り方