必ず受かる情報処理技術者試験

当サイトは、情報処理技術者試験に合格するためのWebサイトです。
ITパスポート試験,基本情報技術者,応用情報技術者,高度試験の過去問題と解答及び詳細な解説を掲載しています。
  1. トップページ
  2. 高度共通 午前1
  3. 平成25年度春季問題一覧
  4. 平成25年度春季問題2-解答・解説-分析

平成25年度春季問題

問題2

func(n)は、非負の整数nに対してnの階乗を返す。fanc(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)

func(n)は、非負の整数nに対してnの階乗を返す。fanc(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!)を求める式は、n1=n×(n-1)×(n-2)×...×2×1=n×(n-1)!である。ただし数学の規則により0!=1である。

× n=0として値を求めるとfact(0)=0となる。0!=1とならない。
× n=0として値を求めるとfact(0)=0となる。0!=1とならない。
階乗と一致する
× n>0の時、
fact(n) =n×fact(n+1)
  =n×(n+1) ×fact(n+2)
  =n×fact(n+1) ×fact(n+2) ×fact(n+3)

となる。したがって階乗を求める式と一致しない。