天天看点

剑指offer-递归-矩形覆盖

剑指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;
}
           

分析:

  • 斐波那契数列求和
    剑指offer-递归-矩形覆盖