HOME»応用情報技術者試験掲示板»平成19年秋期 午前問14
投稿する

平成19年秋期 午前問14 [4250]

 mowさん(No.1) 
proc(n)のnの数字が1ずつ減っていって54321と印字されるのは理解できるのですが、
その後の12345と印字されていく仕組みが理解できずにいます。
n=0 ならば戻るという処理なのでproc(0)からproc(1)へ戻るのかなと思ってましたが
n = 0でなくてもproc(1)からproc(2)、proc(2)からproc(3)、proc(3)からproc(4),
proc(4)からproc(5)へと戻るという処理の流れが理解できずに困ってます。
2023.05.30 18:40
boyonboyonさん(No.2) 
AP シルバーマイスター
proc(n)は、n=0 の時以外は
①nを印字、
②proc(n-1)を呼び出す
③nを印字
という、3つのことを行います。
(nを印字するのが、proc(n-1)を呼び出す前と後、合計2回あります。)

分けて書くと

proc(5)
  5を印字
  proc(4)
  5を印字
終了

proc(4)
  4を印字
  proc(3)
  4を印字
終了
・・・・

proc(1)
  1を印字
  proc(0)→何もしないで戻る。
  1を印字
終了

入れ子にして書くと
proc(5)
  5を印字
    4を印字
      3を印字
        2を印字
          1を印字
          proc(0)→何もしないで戻る。
          1を印字
        2を印字
      3を印字
    4を印字
  5を印字
終了

になります。
2023.05.30 22:46
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010-2024 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop