2016年11月8日火曜日

[指導に使えたらいいなノート] 再帰メソッドが難しいなら数IIまで戻ればいいじゃない

再帰メソッド呼び出しは難しいですよね.
 私も悩みました.
 概念もプログラミング規則もわからない状態だとどっちがダメなのかわからないので数学IIの自分がわかっているだろうレベルまで戻りましょう.
こんな漸化式を計算することを考える.
 a1=3
 an = a_n-1 + 2
 (tex記法を利用できるようにしたらきれいにします)
 これで例えばa4を求めるとこうなりますよね.
 a4 = a3 + 2
 a3 = a2 + 2
 a2 = a1 + 2

 ここまできてa1 = 3だから
 a2 = 3 + 2 = 5
 a3 = 5 + 2 = 7
 a4 = 7 + 2 = 9
 と逆戻りしますよね.
再帰メソッド呼び出しでも同じことがわけです.
 
これを実現するのが以下のコードです.
 public class recursion_ex{

    public static void main(String[] args){

        int n = 4;
        System.out.println(calc_recursion(n));

    }


   /*
     a1 = 3;
     an = 前項 + 2;
     を計算
   */

    static int calc_recursion(int n){

      if(n == 1){
            return 3;
        } else {
          return calc_recursion(n-1) + 2;
        }

   }

}


ソースコードのダウンロードはこちら
 recursion_ex.java 


例のごとく質問があれば直接おねがいします.

0 件のコメント:

コメントを投稿