递归(斐波那契数列)

来源:互联网 发布:psp马甲卡淘宝 编辑:程序博客网 时间:2024/06/06 03:32

有这样一组数列用数组的方式求出固定的位数的值;用递归的方式求出第N位的值 1 1 2 3 5 8 13 21

public class Test5 {    /**    * 1 1 2 3 5 8 13 21    * 1 = fun(1)    * 1 = fun(2)    * 2 = fun(1) + fun(2)    * 3 = fun(2) + fun(3)     */    public static void main(String[] args) {        //demo1();        System.out.println(fun(8));    }    public static void demo1() {        //用数组做不死神兔        int[] arr = new int[8];        //数组中第一个元素和第二个元素都为1        arr[0] = 1;        arr[1] = 1;        //遍历数组对其他元素赋值        for(int i = 2; i < arr.length; i++) {            arr[i] = arr[i - 2] + arr[i - 1];        }        //如何获取最后一个数        System.out.println(arr[arr.length - 1]);    }    /*     * 用递归求斐波那契数列     */    public static int fun(int num) {        if(num == 1 || num == 2) {            return 1;        }else {            return fun(num - 2) + fun(num - 1);        }    }}
原创粉丝点击