1. 程式人生 > >遞迴演算法問題: 有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不會死。問: 第20個月的兔子總對數為多少?(提示:先分析兔子的增長規律)

遞迴演算法問題: 有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不會死。問: 第20個月的兔子總對數為多少?(提示:先分析兔子的增長規律)

遞迴演算法問題:

有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不會死。問: 第20個月的兔子總對數為多少?(提示:先分析兔子的增長規律)

程式碼:

package main;

import java.util.Scanner;

public class Works {

	public static void main(String[] args) {
		System.out.println("請輸入月份:");
		Scanner scanner = new Scanner(System.in);
		int m = scanner.nextInt();
		int rabbit = rabbit(m);
		System.out.println("第" + m + "個月的兔子數目為: " + rabbit);
	}

	public static int rabbit(int mouth) {
		if (mouth == 1 || mouth == 2) {
			return 1;
		}
		// 上一個月的兔子數
		int rabbit1 = rabbit(mouth - 1);
		// 上一個月的前一個月兔子數
		int rabbit2 = rabbit(mouth - 2);
		return rabbit1 + rabbit2;
	}

}

結果: