File size: 1,355 Bytes
0284885
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package Case2_package;

public class Test {
    public static void main(String[] args) {
        /*
        有一对兔子,从出生后第三个月起,每个月都生一对兔子
        小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第十二个月的兔子对数为多少?
            1月:1
            2月:1
            3月:2
            4月:3
            5月:5
            ……

            特点:从第三个数据开始,是前两个数据和(斐波那契数列)
        */

        //求解1:
        //1、创建一个长度为12的数组
        int[] arr = new int[12];

        //2、手动给0索引和1索引的数据进行赋值
        arr[0] = 1;
        arr[1] = 1;

        //3、利用循环给剩余的数据进行赋值
        for (int i = 2; i < arr.length; i++) {
            arr[i] = arr[i - 1] + arr[i - 2];
        }

        //4、获取最大索引上的数据即可
        System.out.println(arr[11]);


        //求解2:
        //递归的方式去完成
        //1、递归的出口
        //2、找到递归的规律
        System.out.println(getSum(12));
    }

    public static int getSum(int month) {
        if (month == 1 || month == 2) {
            return 1;
        }

        return getSum(month - 1) + getSum(month - 2);
    }
}