平成19年秋期 午前問14
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)へと戻るという処理の流れが理解できずに困ってます。
その後の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さん
★AP シルバーマイスター
(No.2)
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を印字
終了
になります。
①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日経過したスレッドへの投稿はできません。
広告