問14
n の階乗を再帰的に計算する関数 F( n)の定義において, a に入れるべき式はどれか。ここで,n は非負の整数である。
n >0のとき, F(n)=
n =0のとき, F(n)= 1
○正解
×不正解
-
n + F(n-1)
-
n -1+ F(n)
-
n × F(n-1)
-
( n -1)× F(n)
解説
自分自身を呼び出し、実行できるプログラムのことを「再帰的(リカーシブ)プログラム」といいます。
また、nの階乗とは「n x (n-1) x (n-2) x ・・・ x 1」という計算を行うものです。
Ex.5の階乗の場合
5!=5x4x3x2x1=120
問題文に「n =0のとき, F(n)= 1」とありますが、これは例文ではありません。
「n=0」の時は、「F(n)=1」としなさい、という事なのです。
これは、階乗の「お約束」とも呼べる条件です。
選択肢を「階乗」の計算方法を踏まえ、「n>0」の条件でF(n)を再帰的に呼び出し続けながら、「n」を減算して「n=0」になるまで繰り返します。なので、「n + F(n-1)」と「n × F(n-1)」が候補としてあがります。そして、階乗は乗算を行っているのですから「n + F(n-1)」は除外できます。よって最後に残った「n × F(n-1)」が正解となります。