剑指offer
题目:矩形覆盖
描述:我们可以用2×1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2×1的小矩形无重叠地覆盖一个2×n的大矩形,总共有多少种方法?
代码:
#include <iostream>
using namespace std;
class Solution {
public:
int rectCover(int number) {
if (0 == number)
{
return 0;
}
else if (1 == number)
{
return 1;
}
else if (2 == number)
{
return 2;
}
else
{
return rectCover(number - 1) + rectCover(number - 2);
}
}
};
int main()
{
int n = 0;
cout << "请输入矩形的个数: ";
cin >> n;
Solution A;
int cnt = A.rectCover(n);
cout << cnt;
}
分析:
- 斐波那契数列求和