矩形覆盖

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

仔细看题就会发现,前两道题和这道题其实思路都是差不多的。

 1 class Solution {
 2 public:
 3     int rectCover(int number) {
 4     int a=2, b=1;
 5     int t = 0;
 6     for(int i=3; i<=number; ++i) {
 7         t = a+b;
 8         b = a;
 9         a = t;
10     }
11     if(number == 1) return 1;
12     else {
13         if(number == 2) return 2;
14         else {
15             if(number == 0) return 1;
16             else return t;
17         }
18     }
19 }
20 };

 

posted @ 2015-07-21 20:29  皮蛋儿丶  阅读(93)  评论(0编辑  收藏  举报