応用情報技術者 平成29年度秋期午前問7

午前問7

fact(n)は、非負の整数nに対してnの階乗を返す。fact(n)の再帰的な定義はどれか。
if n=0 then 0 else return n×fact(n−1)
if n=0 then 0 else return n×fact(n+1)
if n=0 then 1 else return n×fact(n−1)
if n=0 then 1 else return n×fact(n+1)
『情報処理過去問.com』からiPhoneアプリがリリースされました!!

正解

解説

ア〜エにn=4を当てはめ、それぞれを計算すると以下となります。
ア.if n=0 then 0 else return n×fact(n−1)
=4×fact(3)

=4×3×fact(2)

=4×3×2×fact(1)

=4×3×2×1×fact(0)

=4×3×2×1×0

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

=4×5×fact(6)

=4×5×6×fact(7)

以降無限ループとなり計算不可
ウ.if n=0 then 1 else return n×fact(n−1)
=4×fact(3)

=4×3×fact(2)

=4×3×2×fact(1)

=4×3×2×1×fact(0)

=4×3×2×1×1

=24
エ.if n=0 then 1 else return n×fact(n+1)
=4×fact(5)

=4×5×fact(6)

=4×5×6×fact(7)

以降無限ループとなり計算不可
非負の整数n=4に対してn=4の階乗は24なのでウが正解となります。
スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする