लगातार 1 प्राप्त करने के लिए, बिटवाइज़ लेफ्ट शिफ्ट ऑपरेटर का उपयोग करें। यहाँ हमारी दशमलव संख्या है।
i = (i & (i << 1));
उपरोक्त को तब तक लूप करें जब तक I का मान 0 न हो जाए और काउंट वेरिएबल का उपयोग करके लंबाई प्राप्त करें; यहाँ count।
while (i != 0) { i = (i & (i < 1)); count++; }हमने यहाँ जो उदाहरण लिया है वह 150 है।
150 के लिए बाइनरी 10010110 है। इसलिए, हमारे पास दो लगातार 1 हैं।
उदाहरण
using System; class Demo { private static int findConsecutive(int i) { int count = 0; while (i != 0) { i = (i & (i < 1)); count++; } return count; } // ड्राइवर कोड public static void Main() { // 150 का बाइनरी 10010110 है Console.WriteLine(findConsecutive(150)); } }आउटपुट
2