这个问题同样是一个斐波那契数列问题,首先判断当number输入小于0的情况,这时候应该返回None;
否则则是小于等于1的情况,即0,1的两种情况,这时候返回的应该同样是0,1,所以return number;
最后就是大于1的情况,当等于2时,考虑最后一步如果是横着,则剩下的是f(1)中情况,如果是竖着,同样剩下的是f(1)种情况;
以此类推,假设当等于8时,最后一步如果是竖着,剩下的是2*7,这时候应该是f(7)种方法,
如果是横着放,则上下的方块同样也要横着放,剩下的那一部分为2*6,此时为f(6)种情况,所以为f(8) = f(7)+f(6)
 # -*- coding:utf-8 -*-
class Solution:
    def rectCover(self, number):
        # write code here
        if number < 0:
            return None
        elif number <= 1:
            return number
        else:
            rectCover0 = 0
            rectCover1 = 1
            rectCoverN = 0
            for i in range(number):
                rectCoverN = rectCover1 + rectCover0
                rectCover0 = rectCover1
                rectCover1 = rectCoverN
            return rectCoverN