आसान 0 हल किए गए 0% स्वीकृति

दो का घात (Power of Two)

जाँचें कि कोई संख्या दो का घात है या नहीं।

आप क्या सीखेंगे

  • बार-बार आधा करके दो की घात जाँचना
  • n & (n - 1) बिट ट्रिक का उपयोग करना
  • शून्य और ऋणात्मक संख्याएँ संभालना

समस्या

n यह निर्धारित करें कि क्या किसी पूर्णांक k ≥ 0 के लिए n = 2ᵏ है (जैसे 1, 2, 4, 8, …)।

is_power_of_two(n) को लागू करें।

इनपुट

n: जाँचने के लिए संख्या।

आउटपुट

यदि n दो का घात है तो true लौटाएँ।

सीमाएँ

-10¹⁸ ≤ n ≤ 10¹⁸

उदाहरण

उदाहरण 1
इनपुट:
n = 64

अपेक्षित आउटपुट:
expected = True
इनपुट:
long long n = 64;

अपेक्षित आउटपुट:
bool expected = true;
इनपुट:
long n = 64;

अपेक्षित आउटपुट:
bool expected = true;

व्याख्या

64 = 2⁶।

उदाहरण 2
इनपुट:
n = 12

अपेक्षित आउटपुट:
expected = False
इनपुट:
long long n = 12;

अपेक्षित आउटपुट:
bool expected = false;
इनपुट:
long n = 12;

अपेक्षित आउटपुट:
bool expected = false;

व्याख्या

12 = 4 × 3 में एक विषम गुणनखंड है, इसलिए यह दो का घात नहीं है।

कैसे हल करें

पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।

संकेत 1

Power of two का binary में exactly one bit set होता है.

संकेत 2

Bit-based test लगाने से पहले number positive होना चाहिए.

संकेत 3

Negative numbers और zero कभी powers of two नहीं होते.

अपेक्षित जटिलता

समय O(1), अतिरिक्त स्थान O(1)

संदर्भ

यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।

दूसरों से सीखें

समुदाय समाधान

अभी तक कोई प्रकाशित समाधान नहीं। पहला साझा करने के लिए इस चुनौती को हल करें।