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