黑马程序员技术交流社区

标题: 斐波那契 数列 100个月的兔子数怎么求? [打印本页]

作者: 岳鹏    时间: 2016-9-2 21:24
标题: 斐波那契 数列 100个月的兔子数怎么求?
斐波那契 数列 100个月的兔子数怎么求?
每个月对应兔子: 1,1,2,3,5,8,13,21.。。。。。。。。。
作者: 梦想的小草    时间: 2016-9-2 21:48
public static void main(String[] args) {
        方法一:
        // 定义一个数组
        int[] arr = new int[20];
        arr[0] = 1;
        arr[1] = 1;
        // arr[2] = arr[0] + arr[1];
        // arr[3] = arr[1] + arr[2];
        // ...
        for (int x = 2; x < arr.length; x++) {
            arr[x] = arr[x - 2] + arr[x - 1];
        }
        System.out.println(arr[19]);
        System.out.println("----------------");
      方法二:
        int a = 1;
        int b = 1;
        for (int x = 0; x < 18; x++) {
            // 临时变量存储上一次的a
            int temp = a;
            a = b;
            b = temp + b;
        }
        System.out.println(b);
        System.out.println("----------------");
         方法三:
        System.out.println(fib(20));
    }

   
方法: 返回值类型:int 参数列表:int n 出口条件: 第一个月是1,第二个月是1 规律: 从第三个月开始,每一个月是前两个月之和
    public static int fib(int n) {
        if (n == 1 || n == 2) {
            return 1;
        } else {
            return fib(n - 1) + fib(n - 2);
        }
    }





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2