剑指offer 矩形覆盖

来源:互联网 发布:linux ant 安装配置 编辑:程序博客网 时间:2024/05/15 23:50

题目描述

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

解题思路:

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

#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;}
0 0