मान लीजिए कि हमारे पास एक संख्या n है। हमें यह जांचना होगा कि संख्या में केवल दो सेट बिट्स हैं जो पहली और आखिरी स्थिति में हैं या नहीं।
इसलिए, यदि इनपुट n =17 की तरह है, तो आउटपुट सही होगा क्योंकि n का बाइनरी प्रतिनिधित्व 10001 है, पहली और अंतिम स्थिति में केवल दो 1 हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- यदि n 1 के समान है, तो
- सही लौटें
- सही लौटें अगर n-1, 2 की शक्ति है, अन्यथा गलत है
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण कोड
def is_pow_of_two(n): return (n & n-1) == 0 def solve(n): if n == 1: return True return is_pow_of_two (n-1) n = 17 print(solve(n))
इनपुट
17
आउटपुट
True