1、递归

    public static int f(int n){
        if (n < 1){
            throw new IllegalArgumentException(n + "不能小于1");
        }
        if (n == 1 || n == 2){
            return n;
        }
        return f(n-2) + f (n-1);
    }
2、循环迭代

    public static int loop(int n){
        if (n < 1){
            throw new IllegalArgumentException(n + "不能小于1");
        }
        if (n == 1 || n == 2){
            return n;
        }
        // 最后一次跨一步的走法为 one ; 最后一次跨两步的走法为 two
        // 所有走法 = one 次 + two 次
        int one = 1;
        int two = 2;
        int sum = 0;
        for (int i = 3 ; i <= n ; i++){
            // 5步台阶的情况下 最后走一步为4步台阶,及 one = sum
            // 最后一步走两步 即为3步台阶=4步台阶最后走一步 及two = one
            sum = one + two;
            two = one;
            one = sum;
        }
        return sum;
    }
3、总结



 










