70. 爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。

  1. 1 阶 + 1 阶
  2. 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。
  3. 1 阶 + 1 阶 + 1 阶
  4. 1 阶 + 2 阶
  5. 2 阶 + 1 阶

解题思路1

不断交替迭代**

  1. int climbStairs(int n){
  2. if(n <= 0)
  3. return 0;
  4. else if(n == 1)
  5. return 1;
  6. else if(n==2)
  7. return 2;
  8. else{
  9. int f1 = 1;
  10. int f2 = 2;
  11. int i = n-2;
  12. int temp;
  13. while(i--){
  14. temp = f2;
  15. f2 = f1 + f2;
  16. f1 = temp;
  17. }
  18. return f2;
  19. }
  20. }