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 }