基本情報技術者試験を受けたことがないのですが、結構しっかりした問題を出すんですね。これを解くためには再帰と参照渡し(値渡し)を理解している必要があります。 proc(n)の中でproc(n-1)を呼び出していますがこれが再帰と呼ばれるものです(関数内で同じ関数を呼ぶこと)。procの中にn=0ならば戻るとありますが戻り先はそのprocの直前の呼び出し元になります。 n(一般的には整数型)を関数の引数にした場合は値渡しと言ってその関数内でいくら変更しても呼び出し元には影響ありません。 仮に最初に実行したprocをproc1、2回目をproc2…として考えてみます。 proc1 n!=0なので1回目のn=5を印字, proc2(4)を実行 proc2 n!=0なので1回目のn=4を印字, proc3(3)を実行 proc3 n!=0なので1回目のn=3を印字, proc4(2)を実行 proc4 n!=0なので1回目のn=2を印字, proc5(1)を実行 proc5 n!=0なので1回目のn=1を印字, proc6(0)を実行 proc6 n=0なので何もせずproc5に戻る proc5 n=1のままなので2回目のn=1を印字 proc4 n=2のままなので2回目のn=2を印字 proc5 n=3のままなので2回目のn=3を印字 proc5 n=4のままなので2回目のn=4を印字 proc5 n=5のままなので2回目のn=5を印字
< 質問に関する求人 >
基本情報技術(東京都)この条件の求人をもっと見る
求人の検索結果を見る
< いつもと違うしごとも見てみませんか? >
覆面調査に関する求人(東京都)この条件の求人をもっと見る