有一对兔子,从出生后第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)

第一月和第二月是基数,所以从第三月开始相加,第一二月总数为一只

那么第二十月兔子有多少只?

 

posted @ 2020-09-08 01:12  小Ti客栈  阅读(3431)  评论(0编辑  收藏  举报