Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में किसी संख्या के बाइनरी रूप में 1 का लगातार सबसे लंबा रन खोजने का कार्यक्रम

मान लीजिए कि हमारे पास एक संख्या n है, हमें इसके द्विआधारी प्रतिनिधित्व में 1s के लगातार सबसे लंबे समय तक चलने की लंबाई का पता लगाना है।

इसलिए, यदि इनपुट n =312 जैसा है, तो आउटपुट 3 होगा, क्योंकि 312 बाइनरी में 100111000 है और लगातार 3 1s हैं।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • रेट :=0, लेन :=0

  • प्रारंभ करने के लिए मैं:=0, जब मैं <32, अद्यतन (मैं 1 से बढ़ाएँ), यह करें:

    • अगर n/2 विषम है, तो

      • (लेन को 1 से बढ़ाएं)

    • अन्यथा

      • लेन :=0

    • रिट :=अधिकतम रिट और लेन

  • वापसी रिट

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें:

स्रोत कोड (सी++) -

उदाहरण

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int solve(int n) {
      int ret = 0;
      int len = 0;
      for(int i = 0; i < 32; i++){
         if((n >> i) & 1){
            len++;
         }else{
            len = 0;
         }
         ret = max(ret, len);
      }
      return ret;
   }
};
main(){
   Solution ob;
   cout << ob.solve(312);
}

इनपुट

312

आउटपुट

3

  1. C++ में बाइनरी ट्री सबसे लंबे समय तक लगातार अनुक्रम

    मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें यह जांचना होगा कि क्या हम सबसे लंबे क्रमागत अनुक्रम पथ की लंबाई ज्ञात कर सकते हैं। यदि पथ माता-पिता-बच्चे कनेक्शन के साथ पेड़ में किसी भी नोड से कुछ शुरुआती नोड से नोड्स के किसी अनुक्रम को संदर्भित करता है। माता-पिता से बच्चे तक लगातार सबसे लंबे रास्ते की

  1. पायथन में n के द्विआधारी रूप में 1s का लगातार सबसे लंबा रन खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक गैर-ऋणात्मक मान n है, हमें इसके द्विआधारी प्रतिनिधित्व में 1s के लगातार सबसे लंबे समय तक चलने की लंबाई का पता लगाना है। इसलिए, यदि इनपुट n =1469 जैसा है, तो आउटपुट 4 होगा, क्योंकि 156 का बाइनरी प्रतिनिधित्व 10110111101 है, इसलिए लगातार चार 1s हैं इसे हल करने के लिए, हम इन

  1. पायथन का उपयोग करके किसी संख्या के द्विआधारी रूप में 1s की सबसे लंबी दूरी खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक संख्या एन है, हमें इसके द्विआधारी प्रतिनिधित्व में लगातार दो 1 के बीच की सबसे लंबी दूरी का पता लगाना है। अगर कोई दो लगातार 1 नहीं हैं, तो 0 लौटाएं। इसलिए, यदि इनपुट 71 की तरह है, तो आउटपुट 4 होगा, क्योंकि बाइनरी में 71 1000111 है। अब चार हैं, और पहला 1 और दूसरा 1 दूरी पर ह