階乗を求める再帰関数

■ 解き方の方針 階乗を、一つ小さい値の階乗で表します。再帰では、自分自身を呼び出す式だけでなく、必ず停止する条件も確認します。 ■ 階乗の漸化式 $n!$は$n \times (n-1) \times \dots \times 1$なので、先頭のnを分けると $n! = n \times (n-1)!$ と表せます。したがって空欄は n × factorial(n - 1) です。 ■ 再帰が停止することを確認する 呼出しごとに引数はn、n-1、n-2、…と1ずつ小さくなります。n=0になると最初のifで1を返し、それ以上factorialを呼び出しません。この1が$0!=1$という基底条件です。 ■ 正解と誤答の見分け方 したがって、正解は カ です。 factorial(n)を同じnのまま呼ぶ式は停止しません。factorial(n-1)だけでは、現在のnを掛けないためn!になりません。

次のプログラム中の  に入れる正しい答えを,解答群の中から選べ。

関数 factorial は非負の整数 n を引数にとり、その階乗を返す関数である。
非負の整数nの階乗はnが0のときに1になり、それ以外の場合は1からnまでの整数を全て掛け合わせた数となる。

[プログラム]
 ○整数型:factorial(整数型:n)
 if (n == 0)
  return 1
 endif
 return   

出典令和4年度 基本情報技術者試験 科目B サンプル問題 問7
ア
(n - 1) × factorial(n)
イ
factorial(n - 1)
ウ
n
エ
n × (n - 1)
オ
n × factorial(1)
カ
n × factorial(n - 1)