leetcode 79:climbing-stairs

题目描述

你在爬楼梯,需要n步才能爬到楼梯顶部
每次你只能向上爬1步或者2步。有多少种方法可以爬到楼梯顶部?
题目分析:
当n等于0时,有0种方法。当n等于1时,有1种方法,当n等于2时,有两种方法,当n大于2时共有climbStairs(n-1)+climbStairs(n-2)种方法,符合斐波那契数列的规律。因此问题转换为求菲波那切数列的问题了,代码如下:
 1  int climbStairs(int n) {
 2         int f = 1;
 3         int g = 0;
 4         while(n--)
 5         {
 6             f += g;
 7             g = f-g;
 8         }
 9         return f;
10     }

 

posted @ 2020-08-11 11:25  请叫我小小兽  阅读(107)  评论(0编辑  收藏  举报