Cut to achieve Fibonacci number sequence in Java

First, the recursive method

public class Febonacci {

    public static int fn(int n){
            if (n < 0 ){
                throw new IllegalArgumentException(n + "必须大于零");
            }
            if (n==0 || n==1){
                return 1;
            }
            return fn(n-1)+ fn(n-2);
    }

    public static List<Integer> foo(int n){
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i <= n; i++) {
            list.add(fn(i));
        }
        return list;
    }

    public static void main(String[] args) {

        System.out.println(foo(6));
    }
}

 

Second, the loop iteration method

public class Febonacci2 {

    public static int fn(int n){
            if (n < 0 ){
                throw new IllegalArgumentException(n + "必须大于零");
            }
            if (n==0 || n==1){
                return 1;
            }
            int i = 1;
            int j = 1;
            int sum = 0;

        for (int k = 2; k <= n; k++) {
            sum = i + j;
            i = j;
            j = sum;
        }
        return sum;
    }

    public static List<Integer> foo(int n){
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i <= n; i++) {
            list.add(fn(i));
        }
        return list;
    }

    public static void main(String[] args) {

        System.out.println(foo(2));
    }
}

 

Guess you like

Origin www.cnblogs.com/noperx/p/11317130.html