1 /*兔子问题:第三个月起,每个月的兔子数是前两个月的兔子数之和。
2 * 实现:
3 * A:数组实现
4 * B:变量的变化实现
5 * C:递归实现
6 */
7
8 public class diguiDemo {
9
10 public static void main(String[] args) {
11 // 数组实现
12 int array[] = new int[20];
13 array[0] = 1;
14 array[1] = 1;
15 for (int i = 2; i < 20; i++) {
16 array[i] = array[i - 1] + array[i - 2];
17 }
18 System.out.println(array[19]);
19 System.out.println("----------");
20 // 变化的变量实现
21 int a = 1, b = 1;
22 for (int i = 1; i < 19; i++) {
23 int temp = a;
24 a = b;
25 b = temp + b;
26 }
27 System.out.println(b);
28 System.out.println("----------");
29 // 递归实现
30 System.out.println(fab(20));
31 }
32
33 public static int fab(int n) {
34 if (n == 1 || n == 2) {
35 return 1;
36 } else {
37 return fab(n - 1) + fab(n - 2);
38 }
39 }
40
41 }