HOME»ネットワークスペシャリスト平成29年秋期»午前Ⅰ 問3
ネットワークスペシャリスト平成29年秋期 午前Ⅰ 問3
問3
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)
- [出典]
- 応用情報技術者
平成29年秋期 問7と同題
分類
テクノロジ系 » アルゴリズムとプログラミング » アルゴリズム
正解
ウ
解説
それぞれの定義に対して4!(4の階乗)を計算し、正しい解(24)が得られるか否かで検証を行います。
- fact(4)
=4×fact(3) //n>0
=4×3×fact(2) //n>0
=4×3×2×fact(1) //n>0
=4×3×2×1×fact(0) //n>0
=4×3×2×1×0 //n=0
=0 - fact(4)
=4×fact(5) //n>0
=4×5×fact(6) //n>0
=4×5×6×fact(7) //n>0
…以降、無限ループとなり計算できません。 - fact(4)
=4×fact(3) //n>0
=4×3×fact(2) //n>0
=4×3×2×fact(1) //n>0
=4×3×2×1×fact(0) //n>0
=4×3×2×1×1 //n=0
=24 - fact(4)
=4×fact(5) //n>0
=4×5×fact(6) //n>0
=4×5×6×fact(7) //n>0
…以降、無限ループとなり計算できません。