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

更新於:2020年12月12日

197 次檢視

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.