問題描述
樓梯有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);
}
};