niuworld/LeetCodeSolution

70.Climbing Stairs

Opened this issue · 0 comments

Question:

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?

Solution:

需要递归的**。

class Solution {
public:
   int climbStairs(int n) {
       int result;
       if( n == 0 ) return 0;
       if( n == 1 ) return 1;
       if( n == 2 ) return 2;
       int prefirst = 1;
       int presecond = 2;
       for(int i = 3; i <=n; i++){
           result = prefirst + presecond;
           prefirst = presecond ;
           presecond = result ;
       }
       return result;
    }
};