1 class Solution {
2 public:
3 int rectCover(int number) {
4 int res=0;
5 int pre1=1;
6 int pre2=2;
if(number==0) return 0;
7 if(number==1) return 1;
8 if(number==2) return 2;
9 for(int i=3;i<number+1;i++){
10 res=pre1+pre2;
11 pre1=pre2;
12 pre2=res;
13 }
14 return res;
15 }
16 };


也可以采用矩阵的方式。这里可以用循环代替递归。