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

C++ . में पासिंग कार जोड़े गिनें

हमें लंबाई N की एक सरणी दी गई है जिसमें केवल 0 और 1 हैं। मान 1 पश्चिम दिशा की ओर जाने वाली कार का प्रतिनिधित्व करता है और मान 0 पूर्व दिशा की ओर जाने वाली कार का प्रतिनिधित्व करता है।

यदि कार A और कार B का एक जोड़ा ऐसा है कि 0<=A

आइए उदाहरणों के साथ समझते हैं

इनपुट - गिरफ्तारी [] ={1,0,1,0,1}

आउटपुट - पासिंग कार जोड़े की संख्या हैं:3

स्पष्टीकरण - (0,1) के जोड़े जहां 0 का सूचकांक 1 से कम है - (arr[1],arr[2]), (arr[1],arr[4]), (arr[3],arr) [4])

इनपुट - गिरफ्तारी [] ={1,0,0,0,0}

आउटपुट - पासिंग कार जोड़े की संख्या हैं:0

स्पष्टीकरण - (0,1) का ऐसा कोई जोड़ा नहीं है, जहां 0 का सूचकांक 1 से कम हो।

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

हम दो दृष्टिकोणों का उपयोग करेंगे। लूप के लिए दो का उपयोग करके पहला अनुभवहीन दृष्टिकोण। सरणी को ट्रैवर्स करना शुरू करें, बस जब 0 उस बिंदु से फिर से अंत तक ट्रैवर्स सरणी का सामना करना पड़ता है और 1 का सामना करने पर वृद्धि की गिनती होती है।

  • एक सरणी arr[] लें जिसमें 0 और 1 हों।

  • फ़ंक्शन count_cars(int arr[], int size) सरणी और लंबाई को इनपुट के रूप में लेता है और गुजरने वाली कारों की गिनती लौटाता है।

  • प्रारंभिक गणना 0 के रूप में लें।

  • अनुक्रमणिका i=0 से i<लंबाई-1.

    . तक अनुप्रस्थ सरणी
  • अगर arr[i] 0 है, तो अनुक्रमणिका j=i+1 से j<लंबाई तक फिर से सरणी को पार करें।

  • प्रत्येक एआर [जे] के लिए जोड़ी के रूप में 1 वेतन वृद्धि की गणना (arr[i],arr[j]) है (0,1) और i

  • अंत में हमें कुल गिनती मिल जाएगी।

  • परिणाम के रूप में वापसी की गिनती।

कुशल दृष्टिकोण

इस दृष्टिकोण में हम अंत से सरणी को पार करेंगे। अंत से सभी 1 को गिनें। प्रत्येक पहले 0 के लिए (अंत से), नहीं। जोड़े की संख्या 1 की होगी जो कि अस्थायी है।

  • एक सरणी arr[] लें जिसमें 0 और 1 हों।

  • फ़ंक्शन count_cars(int arr[], int size) सरणी और लंबाई को इनपुट के रूप में लेता है और गुजरने वाली कारों की गिनती देता है।

  • प्रारंभिक गणना 0 के रूप में लें।

  • लूप से आकार>=1.

    तक लूप का उपयोग करते हुए अंत से ट्रैवर्स सरणी
  • अगर arr[size-1] 1 है, तो अब तक मिले 1 की संख्या के लिए वेरिएबल टेम्परेचर बढ़ाएँ।

  • अन्यथा यह 0 है (जिसका सूचकांक सभी 1 से कम है जो कि रेम्प है)। जोड़े अस्थायी होंगे। गिनती सेट करें =गिनती+अस्थायी।

  • अगले तत्व के लिए कमी आकार।

  • अंत में हमें कुल गिनती मिल जाएगी।

  • परिणाम के रूप में वापसी की गिनती।

उदाहरण (बेवकूफ दृष्टिकोण)

#include<bits/stdc++.h>
using namespace std;
int count_cars(int arr[], int size){
   int count = 0;
   for (int i=0; i<size-1; i++){
      if(arr[i] == 0){
         for (int j=i+1; j<size; j++)
         if (arr[j]==1){
            count++;
         }
      }
   }
   return count;
}
int main(){
   int arr[] = {1, 1, 0, 0, 1};
   int size = sizeof(arr)/sizeof(arr[0]);
   cout<<"Count of passing car pairs are: "<<count_cars(arr, size);
   return 0;
}

आउटपुट

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

Count of passing car pairs are: 2

उदाहरण (कुशल दृष्टिकोण)

#include<bits/stdc++.h>
using namespace std;
int count_cars(int arr[], int size){
   int count = 0;
   int temp = 0;
   while (size >= 1){
      if (arr[size-1] == 1){
         temp++;
      }
      else{
         count = count + temp;
      }
      size--;
   }
   return count;
}
int main(){
   int arr[] = {1, 1, 0, 1, 1};
   int size = sizeof(arr)/sizeof(arr[0]);
   cout<<"Count of passing car pairs are: "<<count_cars(arr, size);
   return 0;
}

आउटपुट

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

Count of passing car pairs are: 2

  1. बिटवाइज़ के साथ युग्मों की गणना करें-और C++ में सम संख्या के रूप में

    हमें एक पूर्णांक सरणी दी गई है और कार्य जोड़े की कुल संख्या की गणना करना है जो दिए गए सरणी मानों का उपयोग करके बनाई जा सकती हैं जैसे कि जोड़े पर AND ऑपरेशन का परिणाम सम होगा नंबर। और संचालन के लिए सत्य तालिका नीचे दी गई है A B A^B 0 0 0 1 0 0 0 1 0 1 1 1 इनपुट - int arr[] ={2, 5, 1, 8, 9}

  1. सी ++ में एक सरणी में विभाज्य जोड़े की गणना करें

    हमें पूर्णांक तत्वों वाले किसी भी आकार की एक सरणी दी गई है और कार्य एक सरणी में जोड़े की गणना की गणना करना है जैसे कि एक जोड़ी का एक तत्व एक जोड़ी के दूसरे तत्व को विभाजित करता है। एक प्रकार की डेटा संरचना को व्यवस्थित करता है जो एक ही प्रकार के तत्वों के एक निश्चित आकार के अनुक्रमिक संग्रह को संग्

  1. C++ . में कार फ्लीट

    मान लीजिए कि ऐसी N कारें हैं जो एक लेन वाली सड़क के साथ एक ही गंतव्य तक जा रही हैं। गंतव्य लक्ष्य मील दूर है। अब प्रत्येक कार में एक स्थिर गति मान गति [i] (मील प्रति घंटे में) है, और प्रारंभिक स्थिति सड़क के साथ लक्ष्य की ओर स्थिति [i] मील है। एक कार इसके आगे दूसरी कार कभी नहीं पार कर सकती है, लेकि