矩形覆盖

来源:互联网 发布:ps cs3 mac版 编辑:程序博客网 时间:2024/06/10 11:20

题目描述

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

题意分析:

题目不难,难点在于分析,如果前几个化简对的话很容易就发现是斐波那契序列

# -*- coding:utf-8 -*-from itertools import *class Solution:    def rectCover(self, number):        # write code here                if number <= 2:            return number        li = list(islice(self.Fib(), number))        return li[number - 1]    def Fib(self):        x, y = 1, 2        while True:            yield x            x, y = y, x + yif __name__ == "__main__":    a = Solution()    print a.rectCover(10)


0 0
原创粉丝点击