LeetCode-Easy刷题(16) Climbing Stairs

来源:互联网 发布:装修设计师软件 编辑:程序博客网 时间:2024/05/07 17:03

You are climbing a stair case. It takes n steps to reach to the top.

Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?

Note: Given n will be a positive integer.


Example 1:

Input: 2Output:  2Explanation:  There are two ways to climb to the top.1. 1 step + 1 step2. 2 steps

Example 2:

Input: 3Output:  3Explanation:  There are three ways to climb to the top.1. 1 step + 1 step + 1 step2. 1 step + 2 steps3. 2 steps + 1 step

给定楼层数目,输出有多少种攀爬方式每次能爬1或者2层

  //斐波那契数列f(n) = f(n-1) + f(n -2)    public static int climbStairs(int n) {        if(n ==1){          return 1;        }        if(n ==2){          return 2;        }        int f1 = 1;        int f2 = 2;        for (int i = 3; i <=n; i++) {            int f3 = f1 + f2;            f1 = f2;            f2 = f3;        }        return f2;       // return climbStairs(n-1) + climbStairs(n-2);    }