tanakahdaのプログラマ手帳

プログラミングとかソフトウェア開発とかの備忘録

フィボナッチ数列@Java

		// 計算する月数(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));
		}

参考:プログラマの数学(結城浩 氏)増えていく生物