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

テクノロジ系

ア if n=0 then return 0 else return n×fact(n−1)

なぜ違う: 0!=1 であり、0 を返すと常に 0 になる。

イ if n=0 then return 0 else return n×fact(n+1)

なぜ違う: 基底値が誤りで、かつ 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+1 を呼ぶため再帰が収束せず停止しない。

正解: ウ

要点: fact(0)=1、fact(n)=n×fact(n−1)。

階乗の再帰定義は、n=0 のとき 1 を返し(0!=1)、それ以外は n×fact(n−1) を返す。0 を返す定義や、fact(n+1) を呼ぶ定義は誤り(後者は停止しない)。

関連キーワード: 再帰・階乗・アルゴリズム

同じ回の前後の問題

テクノロジ系の他の問題

アプリで弱点分析つきの演習ができます

App Store

応用情報技術者の学習アプリ(応用情報トレ)

出典:令和7年度 春期 応用情報技術者試験 午前 問7