再帰とは?
再帰とは、手続きが自分自身を呼び出す仕組み。「終了条件(基底)」と「自分自身をより小さい問題で呼ぶ部分」の2つで構成する。
高度試験・午前I(全区分共通)の過去問では1回出題されています。
さいき
再帰の意味
手続きが自分自身を呼び出す仕組み。「終了条件(基底)」と「自分自身をより小さい問題で呼ぶ部分」の2つで構成する。
再帰の具体例
階乗は「0!=1」「n!=n×(n−1)!」。ユークリッドの互除法は「gcd(a, 0)=a」「gcd(a, b)=gcd(b, a mod b)」。
再帰は試験でどう引っ掛けられる?
再帰呼出しは実行中の状態をスタックに積むため、深さが大きいとスタックオーバフローを起こす。また、同じプログラムを複数から同時に呼べる性質は「再入可能(リエントラント)」であって再帰とは別概念。
再帰と関連する用語
再帰が出た過去問
再帰的な処理を実現するためには、再帰的に呼び出したときのレジスタ及びメモリの内容を保存しておく必要がある。そのための記憶管理方式はどれか。
正解:LIFO
要点:再帰呼出しの退避・復元はLIFO(スタック)で行う
再帰呼出しでは、呼び出しのたびに戻り番地やレジスタの内容、局所変数を退避し、復帰時には最後に退避したものから順に取り出す必要がある。この「後入れ先出し」の順序で管理する方式がLIFO(スタック)であり、実際にプログラムの実行時にはスタック領域が用いられる。
出典:平成30年度 春期 高度共通_午前I試験 am1 問3(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。