応用情報暗記無料で始める

再帰と末尾再帰とは?さいきとまつびさいき

再帰と末尾再帰とは、関数が自分自身を呼び出しながら処理を進める手法(再帰)のうち、再帰呼び出しが関数の一番最後の処理になっている形式を「末尾再帰」と呼ぶ。末尾再帰は一部の処理系でループ処理に変換され、呼び出しごとにスタックを積み上げる必要をなくせる。

最終更新:2026-10-06

試験情報

応用情報技術者試験の頻出用語/テクノロジ系

応用情報を最短で暗記・合格する →

具体例

階乗計算を「戻ってきてから掛け算する」形で書くと通常の再帰、「途中経過を引数で渡しながら呼び出す」形で書くと末尾再帰になる。末尾再帰最適化に対応した処理系ではスタックオーバーフローを避けやすい。

試験での引っ掛け

「再帰呼び出しが最後に書いてあるか」ではなく「再帰呼び出しの戻り値にさらに演算を加えていないか」が末尾再帰の分岐点。return n * f(n-1) は呼び出しの後に掛け算が残るので末尾再帰ではない。また再帰的(リカーシブ)と再入可能(リエントラント)は別概念で、再帰的に呼べても複数プロセスから同時に呼べるとは限らない。

関連用語

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

応用情報を最短で暗記・合格する →

試験での特徴
  • 分野:テクノロジ系
  • 「再帰呼び出しが最後に書いてあるか」ではなく「再帰呼び出しの戻り値にさらに演算を加えていないか」が末尾再帰の分岐点。