問題
選択肢
- 1必ず反復処理より高速である
- 2関数が自分自身を呼び出す処理方式
- 3無限ループになることはない
- 4メモリ消費量は常に一定である
正解
2. 関数が自分自身を呼び出す処理方式
詳しい解説を見る解説を閉じる
解説
再帰呼出しとは、関数が処理の中で自分自身を呼び出す方式であり、「関数が自分自身を呼び出す処理方式」が正解である。階乗・フィボナッチ数列・木構造の走査など、問題を同じ形の小さな問題に分割できる場合に簡潔に記述できる。「必ず反復処理より高速である」は誤りで、呼出しのたびに戻り先や局所変数をスタックに積むオーバヘッドがあるため、同じ処理を反復(ループ)で書いた場合より遅くなることも多い。「無限ループになることはない」も誤りで、終了条件(基底ケース)を正しく設けなければ無限再帰に陥る。「メモリ消費量は常に一定である」も誤りで、再帰が深くなるほどスタック消費は増加し、スタックオーバーフローの原因となる。「再帰には基底ケースが必須」「呼出し管理にスタックを使う」という2点が科目A・Bを通じた頻出ポイントである。
一問一答
科目A 180問+科目B 60問