古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子對數為多少?
【問題分析】
總結發現每月兔子的規律:1,1,2,3,5,8,13,21....
從第三個月開始,每一個月對數等于前兩個月對數之和:a[n]=a[n-1]+a[n-2]
而第一第二項已知,后面的值也可以求得。
import java.util.Scanner;
public class Rabbit {
private static int fun(int n) {
if(n==1||n==2) {
return 1;
}
return fun(n-1)+fun(n-2);//前兩月之和等于n月對數
}
@SuppressWarnings("resource")
public static void main(String[] args) {
System.out.println("請輸入一個整數查詢具體哪個月有多少兔子?");
Scanner s=new Scanner(System.in);
System.out.println(fun(s.nextInt()));
}
}