有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第n个月的兔子对数为多少?
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)
第一月和第二月是基数,所以从第三月开始相加,第一二月总数为一只
那么第二十月兔子有多少只?