递归(斐波那契数列)

有这样一组数列用数组的方式求出固定的位数的值;用递归的方式求出第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);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/xgangzai/article/details/76340795