ソフトウェア開発技術者平成19年秋期 午前問14

問14

再帰的に定義された手続きprocで,proc(5)を実行したとき,印字される数字を順番に並べたものはどれか。

proc(n)
 n=0 ならば戻る
 そうでなければ
 {
  nを印字する
  proc(n-1)を呼び出す
  nを印字する
 }
 を実行して戻る
  • 543212345
  • 5432112345
  • 54321012345
  • 543210012345
  • [出題歴]
  • 応用情報技術者 H25秋期 問8

分類

テクノロジ系 » アルゴリズムとプログラミング » アルゴリズム

正解

解説

proc(5)の流れをトレースします。
  1. proc(5)
    n=0ではないので5を印字
    proc(4)を呼び出す
  2. proc(4)
    n=0ではないので4を印字
    proc(3)を呼び出す
  3. proc(3)
    n=0ではないので3を印字
    proc(2)を呼び出す
  4. proc(2)
    n=0ではないので2を印字
    proc(1)を呼び出す
  5. proc(1)
    n=0ではないので1を印字
    proc(0)を呼び出す
  6. proc(0)
    n=0なのでproc(1)内に戻る
  7. proc(1)
    1を印字してproc(2)内に戻る
  8. proc(2)
    2を印字してproc(3)内に戻る
  9. proc(3)
    3を印字してproc(4)内に戻る
  10. proc(4)
    4を印字してproc(5)内に戻る
  11. proc(5)
    5を印字して処理を終了する
印字された数字を順番に並べると「5432112345」になります。
© 2010-2024 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop