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?
其实就是斐波那契数列,递推求解便知。
1 class Solution { 2 public: 3 int climbStairs(int n) { 4 if (n==1) return 1; 5 if (n==2) return 2; 6 int a = 1, b = 2; 7 int c; 8 for (int i = 3; i <= n; i++) { 9 c = a + b; 10 a = b; 11 b = c; 12 } 13 return c; 14 } 15 };
[Leetcode] Climbing Stairs,布布扣,bubuko.com
原文:http://www.cnblogs.com/easonliu/p/3630624.html