您的位置:首页 > Web前端

剑指offer 矩形覆盖

2015-08-18 23:14 435 查看
题目描述

我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?

解题思路:

该题实际上就是一个斐波那契数列,找到规律之后,就容易求解了。

[code]#include <iostream>

using namespace std;

class Solution {
public:
    int rectCover(int number) {
        if(0 == number)
            return 1;
        if(1 == number)
            return 1;
        if(2 == number)
            return 2;

        int prelast = 1,last = 2;
        int index = 0;
        int sum = 0;

        for(index = 3;index <= number; index++)
        {
            sum = prelast + last;
            prelast = last;
            last = sum;
        }
        return sum;
    }
};

int main()
{
    Solution s;
    cout << s.rectCover(4) << endl;

    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: