// 計算する月数(3年) final int MONTHS = 36; // お父さんウサギの数1匹 final int DAD = 1; // nヶ月後のウサギの総数を格納する配列。ただしお父さんウサギはカウントしない。 int f[] = new int[37]; // 1〜3ヶ月目はお父さんウサギの他もう1匹いるので1匹ずつ代入する f[1] = 1; f[2] = 1; f[3] = 1; for (int n = 1; n <= MONTHS; n++) { if (n > 3) { // 生後4ヶ月目以降は 前月までのウサギの総数(f[n -1])と // 生後4ヶ月目のウサギが2匹産むため (f[n - 3] + f[n - 3])を加算する f[n] = f[n - 1] + f[n - 3] + f[n - 3]; } System.out.println(n + "ヶ月目の総数 = " + (f[n] + DAD)); }