Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C में लगातार 1's के बिना बाइनरी स्ट्रिंग्स की संख्या गिनना

दिया गया कार्य लंबाई n की उन सभी बाइनरी स्ट्रिंग्स की संख्या गिनना है जिनमें कोई लगातार 1's नहीं हैं।

बाइनरी नंबर सिस्टम नंबर रिप्रेजेंटेशन तकनीकों में से एक प्रकार है। यह डिजिटल सिस्टम में सबसे लोकप्रिय और उपयोग किया जाता है। बाइनरी सिस्टम का उपयोग बाइनरी मात्राओं को दर्शाने के लिए किया जाता है जिन्हें किसी भी डिवाइस द्वारा दर्शाया जा सकता है जिसमें केवल दो ऑपरेटिंग स्टेट्स या संभावित स्थितियां होती हैं। उदाहरण के लिए, एक स्विच की केवल दो स्थितियां होती हैं: खुला या बंद।

बाइनरी सिस्टम में केवल दो सिंबल या संभावित डिजिट वैल्यू होती हैं, यानी 0 और 1। किसी भी डिवाइस द्वारा दर्शाया गया जिसमें केवल 2 ऑपरेटिंग स्टेट्स या संभावित स्थितियां होती हैं। बाइनरी स्ट्रिंग्स वे स्ट्रिंग्स हैं जिनमें बाइनरी वैल्यू होती हैं यानी या तो 0's या 1's।

आइए अब एक उदाहरण का उपयोग करके समझते हैं कि हमें क्या करना है -

इनपुट - n = 2

आउटपुट - 2 की लंबाई वाली बिना लगातार 1's की बाइनरी स्ट्रिंग्स की संख्या: 3

व्याख्या - 00, 01, 10 इसलिए लंबाई n की केवल 3 बाइनरी स्ट्रिंग्स हैं जिनमें कोई लगातार 1's नहीं हैं

इनपुट - n = 7

आउटपुट - 7 की लंबाई वाली बिना लगातार 1's की बाइनरी स्ट्रिंग्स की संख्या: 34

नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण इस प्रकार है

  • स्ट्रिंग लंबाई के लिए इनपुट n लें

  • काउंट फंक्शन में हम लगातार 1's के बिना बाइनरी स्ट्रिंग्स गिनेंगे, आकार n के दो ऐरे arr[] और arr_2 परिभाषित करेंगे, और परिणाम स्टोर करने के लिए एक वेरिएबल temp।

  • दोनों ऐरे के 0th एलिमेंट को 1 असाइन करें

  • i=1 से तब तक लूप चलाएं जब तक i, n से कम है।

  • लूप में, arr[i] = arr[i-1]+arr_2[i-1] और arr_2[i] = arr[i-1] सेट करें

  • temp = arr[n-1]+arr_2[n-1] सेट करें, और फिर temp प्रिंट करें।

उदाहरण

#include
// लगातार 1's के बिना बाइनरी स्ट्रिंग्स की गणना करने के लिए फंक्शन बनाएं
void count(int num){
    int arr[num];
    int arr_2[num];
    int i=0, temp=0;
    arr[0] = arr_2[0] = 1;
    // लूप तब तक चलाएं जब तक नंबर 0 के बराबर नहीं है
    for (i = 1; i < num; i++){
        arr[i] = arr[i-1] + arr_2[i-1];
        arr_2[i] = arr[i-1];
    }
    temp = arr[num-1] + arr_2[num-1];
    printf("Count of binary strings without consecutive 1's of %d is : %d",num,temp);
    printf("\n");
}
int main(){
    // काउंट फंक्शन को कॉल करें
    count(10);
    count(7);
    count(1);
    return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो हमें निम्नलिखित आउटपुट मिलेगा -

Count of binary strings without consecutive 1's of 10 is : 144
Count of binary strings without consecutive 1's of 7 is : 34
Count of binary strings without consecutive 1's of 1 is : 2
  1. - पायथन में बाइनरी प्रतिनिधित्व में प्राइम सेट बिट्स की संख्या

    मान लीजिए हमारे पास दो पूर्णांक L और R हैं, हमें रेंज [L, R] (सम्मिलित) में उन संख्याओं की गिनती ज्ञात करनी है जिनके बाइनरी रूप में प्राइम संख्या में सेट बिट्स हैं। उदाहरण के लिए, यदि इनपुट L = 6 और R = 10 है, तो आउटपुट 4 होगा, क्योंकि 4 संख्याएं 6(110), 7(111), 9(1001), 10(1010) हैं, जिनमें सभी मे

  1. पायथन प्रोग्राम: लगातार 1 के बिना बाइनरी स्ट्रिंग्स की संख्या गिनें पायथन प्रोग्राम: लगातार 1 के बिना बाइनरी स्ट्रिंग्स की संख्या गिनें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक धनात्मक पूर्णांक N दिया गया है, हमें लंबाई N की सभी संभावित अलग बाइनरी स्ट्रिंग्स गिननी हैं जिनमें लगातार 1 न हों। उदाहरण # स्ट्रिंग्स की संख्या गिनें def countStrings(n): a = [0 for i in range(n)] b = [0 for i in r

  1. - संख्या में कुल बिट्स गिनने के लिए पायथन प्रोग्राम

    समस्या विवरण सबसे पहले हम एक संख्या इनपुट करते हैं फिर bin() फंक्शन का उपयोग करके इस संख्या को बाइनरी में बदलते हैं और अगला आउटपुट स्ट्रिंग के पहले दो वर्ण 0b को हटाते हैं, फिर बाइनरी स्ट्रिंग की लंबाई की गणना करते हैं। उदाहरण इनपुट: 200 आउटपुट: 8 व्याख्या 200 का बाइनरी प्रतिनिधित्व 11001000 है