Skip to content

Latest commit

 

History

History
43 lines (35 loc) · 804 Bytes

climbing_stairs.md

File metadata and controls

43 lines (35 loc) · 804 Bytes

Climbing stairs

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?

Example 1: Input: 2 Output: 2 Explanation: There are two ways to climb to the top.

  1. 1 step + 1 step
  2. 2 steps

Example 2: Input: 3 Output: 3 Explanation: There are three ways to climb to the top.

  1. 1 step + 1 step + 1 step
  2. 1 step + 2 steps
  3. 2 steps + 1 step

Constraints:

  • 1 <= n <= 45
class Solution {

    /**
     * @param Integer $n
     * @return Integer
     */
    function climbStairs($n) {
        return round(
            (
                ((1 + sqrt(5)) / 2) ** ($n + 1) -
                ((1 - sqrt(5)) / 2) ** ($n + 1)
            ) /
            sqrt(5)
        );
    }
}