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

C++ का प्रयोग करते हुए शून्यों की संख्या ज्ञात कीजिए

इस समस्या में, हमें केवल 0 और 1 से मिलकर एक बाइनरी सरणी बिन [] दिया जाता है। हमारा काम है शून्य की संख्या ज्ञात करना

सरणी को क्रमबद्ध किया जाता है यानी सभी 0 को 1 के बाद एक साथ व्यवस्थित किया जाता है।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट

arr[] = {1, 1, 1, 0, 0, 0, 0}

आउटपुट

4

समाधान दृष्टिकोण

समस्या का एक सरल समाधान इस तथ्य का उपयोग कर रहा है कि सरणी को क्रमबद्ध किया गया है, अर्थात सरणी में 0 की संख्या को सरणी में 0 की पहली घटना का उपयोग करके पाया जा सकता है। पहली घटना के बाद सभी मान शून्य होंगे।

सरणी में 0 की पहली घटना को खोजने के लिए। हम खोज एल्गोरिदम का उपयोग कर सकते हैं।

रैखिक खोज - पहले 0 के लिए रैखिक खोज में, हम पूरे सरणी को तब तक पार करेंगे जब तक कि पहले 0 का सामना नहीं किया जाता है, फिर हम पहली घटना और सरणी के आकार का उपयोग करके गिनती वापस कर देंगे। इस समाधान का उपयोग करके हम समस्या की समय जटिलता को O(N) बनाते हैं।

उदाहरण

हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम

#include <iostream>
using namespace std;
int findFirstZero(int arr[], int n){
   for(int i = 0; i < n; i++){
      if(arr[i] == 0){
         return i;
      }
   }
   return -1;
}
int countZerosArr(int arr[], int n){
   int firstOccZero = findFirstZero(arr, n);
   if (firstOccZero == -1)
      return 0;
      return (n - firstOccZero);
   }
int main(){
   int arr[] = {1, 1, 1, 1, 0, 0, 0, 0, 0};
   int n = sizeof(arr) / sizeof(arr[0]);
   cout<<"The count of zeros in array is "<<countZerosArr(arr, n);
   return 0;
}

आउटपुट

The count of zeros in array is 5

बाइनरी सर्च - बाइनरी सर्च में, हम एरे के सेक्शन को इस आधार पर विभाजित करके पहला 0 पाएंगे कि क्या मध्य में तत्व 1 या 0 है। और 0 की पहली घटना का इंडेक्स लौटाएं।

उदाहरण

हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम

#include <iostream>
using namespace std;
int findFirstZero(int arr[], int start, int end){
   if (end >= start){
      int mid = start + (end - start) / 2;
      if ((mid == 0 || arr[mid - 1] == 1) && arr[mid] == 0)
         return mid;
      if (arr[mid] == 1)
         return findFirstZero(arr, (mid + 1), end);
      else
         return findFirstZero(arr, start, (mid -1));
   }
   return -1;
}
int countZerosArr(int arr[], int n){
   int firstOccZero = findFirstZero(arr, 0, n - 1);
   if (firstOccZero == -1)
      return 0;
      return (n - firstOccZero);
}
int main(){
   int arr[] = {1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0};
   int n = sizeof(arr) / sizeof(arr[0]);
   cout<<"The count of zeros in array is "<<countZerosArr(arr, n);
   return 0;
}

आउटपुट

The count of zeros in array is 7

  1. N के आधार 16 निरूपण में अनुगामी शून्यों की संख्या ज्ञात कीजिए! सी ++ का उपयोग करना

    इस लेख में, हम उदाहरण के लिए इसके भाज्य के आधार 16 निरूपण में दी गई संख्या N के अनुगामी शून्यों को खोजने की समस्या को समझेंगे Input : N = 7 Output : 1 Explanation : fact(7) = 5040 in base10 and 13B0 in base16 having 1 trailing zero. Input : N = 11 Output : 2 Explanation : fact(11) = 39916800 in bas

  1. C++ का उपयोग करके एक स्ट्रिंग के सबस्ट्रिंग की संख्या ज्ञात करें

    इस लेख में, आप किसी दिए गए स्ट्रिंग में बनाए जा सकने वाले सबस्ट्रिंग (गैर-रिक्त) की संख्या को खोजने के तरीकों के बारे में जानेंगे। Input : string = “moon” Output : 10 Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, &lsqu

  1. C++ . का उपयोग करके स्टॉपिंग स्टेशनों की संख्या ज्ञात कीजिए

    बिंदु X और Y के बीच मध्यवर्ती ट्रेन स्टेशनों की संख्या n है। गिनें कि अलग-अलग तरीकों से ट्रेनों को s स्टेशनों पर रुकने के लिए व्यवस्थित किया जा सकता है जैसे कि कोई भी दो स्टेशन एक दूसरे के बगल में नहीं हैं। तो इस लेख में, हम स्टॉपिंग स्टेशनों की संख्या का पता लगाने के लिए हर संभव तरीके की व्याख्या क