मान लीजिए कि हमारे पास एक संख्या n है, हमें उन तरीकों की संख्या ज्ञात करनी है जिनसे हम एक (3 x n) ब्लॉक को 1 x 2 डोमिनोज़ से भर सकते हैं। हम आवश्यकता पड़ने पर डोमिनोज को घुमा सकते हैं। अगर उत्तर बहुत बड़ा है तो इस मॉड को 10^9 + 7 लौटाएं।
इसलिए, यदि इनपुट n =4 जैसा है, तो आउटपुट 11 होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- एम =10^9 + 7
- यदि n विषम है, तो
- वापसी 0
- cs :=1, os :=0
- 2 से n की श्रेणी में i के लिए, 2 से बढ़ाएँ, करें
- cs :=3 * cs + os
- os :=2 * cs + os
- रिटर्न सीएस मॉड एम
उदाहरण (पायथन)
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
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