教えて!しごとの先生
教えて!しごとの先生
  • 回答終了

基本情報技術者試験の問題です。答えはイです。詳しく解説お願いします。1を印字してからどうして2345とn-1なのに増えて…

基本情報技術者試験の問題です。答えはイです。詳しく解説お願いします。1を印字してからどうして2345とn-1なのに増えて印字されるのか分かりません。n=0ならば戻るの戻るがどこに戻るのか教えてください。

25閲覧

回答(1件)

  • 基本情報技術者試験を受けたことがないのですが、結構しっかりした問題を出すんですね。これを解くためには再帰と参照渡し(値渡し)を理解している必要があります。 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を印字

    続きを読む

< 質問に関する求人 >

基本情報技術(東京都)

この条件の求人をもっと見る

< 平日勤務で週末はリフレッシュしたい人におすすめ >

正社員×土日祝休み(東京都)

求人の検索結果を見る

もっと見る

この質問と関連する質問

    < いつもと違うしごとも見てみませんか? >

    覆面調査に関する求人(東京都)

    この条件の求人をもっと見る

    Q&A閲覧数ランキング

    カテゴリ: 資格

    転職エージェント求人数ランキング

    • 1

      続きを見る

    • 2

      続きを見る

    • 3

      続きを見る

    あわせて読みたい
    スタンバイプラスロゴ

    他の質問を探す

    答えが見つからない場合は、質問してみよう!

    Yahoo!知恵袋で質問をする

    ※Yahoo! JAPAN IDが必要です

    スタンバイ アプリでカンタン あなたにあった仕事見つかる