本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

平成29年度 秋期 高度情報技術者試験問題と解説

問3

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

ア 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)


正解


解説

n = 3 の時、3の階乗、すなわち3×2×1 = 6となるかを調べる。

ア fact(3) = 3×fact(2) = 3×2×fact(1)
= 3×2×1×fact(0) = 3×2×1×0 = 0となる。

イ fact(3) = 3×fact(4) = 3×4×fact(5)
= 3×4×5×fact(6) ・・・ となり、処理が永遠に終了しない。

ウ 正しい。
fact(3) = 3×fact(2) = 3×2×fact(1)
= 3×2×1×fact(0) = 3×2×1×16となる。

エ fact(3) = 3×fact(4) = 3×4×fact(5)
= 3×4×5×fact(6) ・・・ となり、処理が永遠に終了しない。

問2 目次 問4