正答2
解説
正解は2です。
再帰的に定義された関数F(n)で、乗算が何回行われるかを数える問題です。
n>0のときはn×F(n−1)を計算するので、呼出し1回につき乗算が1回行われます。
n=0のときは1を返すだけで、乗算は行いません。
【計算】
F(n)からF(1)までのn回の呼出しで、それぞれ乗算を1回ずつ行います。
F(0)は乗算をしません。
合計の乗算回数は1×n=n回です。
例えばF(3)=3×(2×(1×1))で、乗算は3回です。
【選択肢別解説】
1:× n−1回ではありません。
F(1)でも1×F(0)の乗算を1回行うので、n回になります。
2:○ n>0の呼出しがn回あり、それぞれ1回ずつ乗算するのでn回です。
3:× n^2回にはなりません。
各呼出しの乗算は1回だけです。
4:× n!はF(n)の計算結果そのものです。
乗算の回数ではありません。
【ポイント】
再帰関数の処理回数は、呼出しが何段続くかと、1段ごとの処理回数から求めます。
終了条件の段(ここではn=0)で処理が行われるかどうかに注意しましょう。