हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो एक संख्या लेता है और यह निर्धारित करता है कि यह दो की शक्ति है या नहीं।
उदाहरण के लिए -
f(23) = false f(16) = true f(1) = true f(1024) = true
दृष्टिकोण -
द्विआधारी रूप में दो की शक्तियों में हमेशा एक बिट होता है। इस तरह -
1: 0001 2: 0010 4: 0100 8: 1000
इसलिए, यह जाँचने के बाद कि संख्या शून्य से अधिक है, हम बिटवाइज़ हैक का उपयोग करके परीक्षण कर सकते हैं कि एक और केवल एक बिट सेट है। वही नीचे दिखाया गया है -
num & (num - 1)
उदाहरण
निम्नलिखित कोड है -
const num1 = 256; const num2 = 1024; const isPowerOfTwo = (num = 1) => { if (num < 1) { return false; }; return (num & (num - 1)) === 0; }; console.log(isPowerOfTwo(num1)); console.log(isPowerOfTwo(num2)); console.log(isPowerOfTwo(1)); console.log(isPowerOfTwo(23));
आउटपुट
कंसोल पर आउटपुट निम्नलिखित है -
true true true false