
基本情報技術者試験基礎・応用
条件を読む・根拠を説明する
再帰呼出しの前後
条件を整理し、答えを選んでから解き方を確認しましょう。
P(n)はn=0なら何もしない。他はnを表示し、P(n−1)を呼び、再びnを表示する。P(2)の表示順はどれか。
答え・解き方を読む
2,1,1,2
図で見る
呼出し前と戻った後の表示を区別する
P(2)は2を表示してP(1)へ、P(1)は1を表示してP(0)へ進みます。P(0)は何もせず戻り、戻った順に1、2を表示するため2,1,1,2です。
図は問題の関係を整理する模式図です。記号には各問題の数値を当てはめます。寸法・面積・時間の縮尺や、実施工の全条件は表していません。
考える順序
- 1P(2)はまず2を表示
- 2P(1)が1を表示しP(0)から戻って1を表示
- 3最後にP(2)へ戻り2を表示
選択肢ごとの理由
- 比較 · 2,2,1,1
再帰呼出しの終了を待って後半を実行します。
- 正解 · 2,1,1,2
P(2)はまず2を表示。P(1)が1を表示しP(0)から戻って1を表示。最後にP(2)へ戻り2を表示。
- 比較 · 2,1,0,1,2
基底n=0は何も表示しません。
- 比較 · 1,2,2,1
最初の表示は呼出し前なので2からです。