1 package test01; 2 import java.util.Scanner; 3 public class Test3 { 4 5 public static void main(String[] args) { 6 // TODO 自動生成的方法存根 7 java.util.Scanner s = new java.util.Scanner(System.in); 8 System.out.println("請輸入你想要的當月的月數:"); 9 int n= s.nextInt(); 10 System.out.println("當第"+n+"個月后,兔子有" + Sum(n) + "對"); 11 } 12 private static int Sum(int n){ 13 if(1 == n || 2 == n){ 14 return 1; 15 }else{ 16 return (Sum(n-1) + Sum(n-2)); 17 } 18 } 19 }
1 說明: 2 3 月數 兔子對數 說明 4 1 1 第一個月一對 5 2 1 6 3 1 +1 第一對從出生起第三個月生第二對 7 4 1+1 +1 三個月滿了后,第一對每個月生一對 8 5 1 +1 +1 +1+1 第二對兔子滿三月開始生一對 9 6 1+1 +1+1 +1+1 +1+1 第二對兔子每月開始生一對 10 7 ......
兔子每月個數:1 ,1 ,2,3,5,8
規律就是,前兩月的和就是第三月,得出:f(n)=f(n-1)+f(n-2)
第一月和第二月是基數,所以從第三月開始相加,第一二月總數為一只
那么第二十月兔子有多少只?

