Python程序:计算用2x1多米诺骨牌填充3 x n方格的方法数量
假设我们有一个数字n,我们必须找到用1 x 2多米诺骨牌填充(3 x n)块的方法数量。如果需要,我们可以旋转多米诺骨牌。如果答案非常大,则返回模10^9 + 7的结果。
因此,如果输入为n = 4,则输出为11。
为了解决这个问题,我们将遵循以下步骤:
- m = 10^9 + 7
- 如果n是奇数,则
- 返回0
- cs := 1, os := 0
- 对于范围从2到n,步长为2的i,执行:
- cs := 3 * cs + os
- os := 2 * cs + os
- 返回cs mod m
示例 (Python)
让我们看看下面的实现,以便更好地理解:
class Solution: def solve(self, n): m = (10 ** 9 + 7) if n % 2 == 1: return 0 cs = 1 os = 0 for i in range(2, n + 1, 2): cs, os = (3 * cs + os, 2 * cs + os,) return cs % m ob = Solution() n = 4 print(ob.solve(n))
输入
4
输出
11
广告