平成25年春期試験問題 午前問6

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の階乗(n!)は、1からnの全ての整数の積です。それぞれの関数定義に対して引数 4 を与えてみて、4の階乗の結果である「4×3×2×1=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
    ・・・以降、無限ループとなり計算できません。
したがって正しい関数定義は「ウ」です。

この問題の出題歴


Pagetop