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

proc(n)
n = 0ならば戻る
そうでなければ
{
nを印字する
proc(n - 1)を呼び出す
nを印字する
}
を実行して戻る
×不正解です

0が印字されることはありませんので、選択肢はアかイの二択になります。

解く鍵は、1が二回繰り返されるかどうかです。

そして「nを印字する」は二つあります。

proc(5)を実行します。

  • 1. 最初にnが0でないため、5を印字します。
  • 2. proc(4)を呼び出します。
  • - proc(4)では、4を印字し、proc(3)を呼び出します。
  • 3. 以下同様に、proc(3)、proc(2)、proc(1)が順に呼び出されます。
  • 4. proc(1)の場合でも1を印字し、proc(0)を呼び出します。
  • 5. proc(0)ではnが0のため、何も印字せずに戻ります。
  • 6. proc(1)に戻り、再度1を印字。
  • 7. 同様にproc(2)、proc(3)、proc(4)、proc(5)へ戻り、それぞれの数字を再度印字。

最終的に印字された数字の順番は「5432112345」となります。

回答数 1
正解率 100.00%