public class Solution {
    //递归实现
    /*public int Fibonacci(int n) {
        if(n==1||n==2){
            return 1;
        }
        return Fibonacci(n-1) + Fibonacci(n-2);

    }*/
    //非递归实现
    /*public int Fibonacci(int n) {
        if(n==1||n==2){
            return 1;
        }
        int a = 1;
        int b = 1;
        int temp;
        for(int i = 3; i <= n; i++){
            temp = a;
            a = b;
            b = b + temp;
        }
        return b;

    }*/
    //动态规划实现
    public int Fibonacci(int n) {
        if(n==1||n==2) return 1;
        int[] arr = new int[n];
        arr[0] = 1;
        arr[1] = 1;
        for(int i = 2; i < n; i++){
            arr[i] = arr[i-1] + arr[i-2];
        }
        return arr[n-1];
    }
}