階乗関数の再帰的定義

正解は ウ です。 $n! = n \times (n-1)!$、$0! = 1$ です。再帰で書くときは「n を1ずつ減らして呼び出し、n=0 で 1 を返して止める」形になります。 n=0 で 0 を返すため、最後に 0 を掛けることになり、どの n でも 0 になります。 fact(n+1) を呼ぶと n が増え続けて n=0 に到達せず、再帰が終わりません。 基底は正しいですが、fact(n+1) を呼ぶため再帰が終わりません。

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

出典令和7年度 春期 応用情報技術者試験 午前 問7
ア
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)