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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP