问题描述
楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,走完n阶台阶共有多少种不同的走法
解题思路: 假设n阶台阶有f(n)种走法,第一步有2种走法 1.如果上1阶,那就还剩n-1阶,共有f(n-1)种走法 2.如果上2节,那就还剩n-2阶,共有f(n-2)种走法 所以f(n) = f(n-1) + f(n-2).
代码如下:
class ClimbStairs
{
public:
int climb(int n
)
{
if (n
<= 2)
{
return n
;
}
return climb(n
- 1) + climb(n
- 2);
}
};