情報処理安全確保支援士試験 平成29年度秋期 午前Ⅰ 問3「fact (n) は,非負の整数 n に対して n の階乗を返す。fact (n…」の正解と解説です。情報処理安全確保支援士試験の「再帰」分野の過去問で、各選択肢の正誤も解説付きで確認できます。
ウ. if n=0 then return 1 else return n×fact(n−1)
階乗の再帰定義は、基底(終了)条件と再帰呼出しの両方が正しく必要。0の階乗は1なのでn=0のときreturn 1、それ以外はn×fact(n-1)で1ずつ減らして基底へ収束させる。ウがこの形でn!=n×(n-1)!を正しく表す。プログラミングで再帰を書く際は、必ず停止する基底条件と、引数が確実に基底へ近づく再帰式を備えることが鉄則。