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

C++ में दिए गए कार्यों को करने के बाद किसी सरणी में समान संख्याओं की अधिकतम संख्या

हमें पूर्णांकों की एक सरणी दी गई है। लक्ष्य सरणी में अधिकतम संख्याएँ ज्ञात करना है जो दिए गए कार्यों को करने के बाद बराबर हैं -

  • दो तत्वों का चयन करें a[i] और a[j] जैसे कि i !=j और

  • वेतन वृद्धि a[i] और वेतन वृद्धि a[j] (a[i]++,a[j]-- )

हम सरणी का योग लेंगे और इसे तत्वों की संख्या से विभाजित करेंगे। यदि N, सरणी के आकार का है, तो

यदि योग N से विभाज्य है तो समान संख्याएँ भी N होंगी अन्यथा समान संख्याएँ N-1 होंगी।

इनपुट

Arr[]= { 1,2,3 }

आउटपुट

Maximum count of equal numbers : 3

स्पष्टीकरण - पहले चरण के बाद Arr[] ={ 2,2,2 } इंक्रीमेंट 1 और डिक्रीमेंट 3 एलिमेंट्स का योग 1+2+3=6, 6%3==0 है, इसलिए बराबर संख्याएँ=3

इनपुट

Arr[]= { 1,2,4 }

आउटपुट

Maximum count of equal numbers : 2

स्पष्टीकरण - पहले चरण के बाद Arr[] ={ 1,3,3 } इंक्रीमेंट 2 और डिक्रीमेंट 4 एलिमेंट का योग 1+2+4=7, 7%3==1 है, इसलिए बराबर संख्याएं=3-1=2

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

  • पूर्णांक सरणी Arr[] का उपयोग पूर्णांकों को संग्रहीत करने के लिए किया जाता है।

  • पूर्णांक 'आकार' सरणी की लंबाई को संग्रहीत करता है।

  • फ़ंक्शन maxEqual(int arr[], int n) एक सरणी लेता है, इसका आकार इनपुट के रूप में होता है और दिए गए ऑपरेशन को लागू करने के बाद सरणी में मौजूद बराबर संख्याओं की अधिकतम संख्या देता है।

  • सबसे पहले हम सरणी तत्वों के योग की गणना करेंगे और 'sum' में स्टोर करेंगे

  • अब आकार n (sum%n==0) द्वारा योग की विभाज्यता की जाँच करें।

  • यदि विभाज्य हो तो n

    . लौटाएं
  • अन्यथा परिणाम के रूप में n-1 लौटाएं।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int maxEqual(int arr[], int n){
   int sum = 0;
   for (int i = 0; i < n; i++){
      sum += arr[i];
   }
   if (sum%n==0){
      return n;
   }
   return n-1;
}
int main(){
   int Arr[] = { 1, 4, 1, 2};
   // size of an array
   int size =4;
   cout <<" Maximum count of equal numbers :"<< maxEqual(Arr,size);
   return 0;
}

आउटपुट

Maximum count of equal numbers: 4

  1. C++ में दी गई श्रेणी में भाज्य संख्याओं की गणना करें

    हमें एक चर द्वारा धारित पूर्णांक मान से शुरू होने वाली श्रेणी दी गई है, मान लीजिए कि चर अंत तक शुरू होता है और कार्य दी गई सीमा में उपलब्ध भाज्य संख्याओं की कुल संख्या की गणना करना है। फैक्टोरियल नंबर क्या है किसी संख्या के भाज्य की गणना अंकों के अंकों को 1 से घटाते हुए अंकों को गुणा करके की जाती ह

  1. C++ में एक सरणी में अधिकतम दो संख्याओं का XOR

    मान लीजिए कि हमारे पास संख्याओं का एक गैर-रिक्त सरणी है, a0, a1, a2,… , an-1, जहां 0 ≤ ai <231. हमें ai का अधिकतम परिणाम ज्ञात करना है एक्सओआर एजे, जहां 0 आई, जे <एन। तो अगर इनपुट [3,10,5,15,2,8] जैसा है, तो आउटपुट 28 होगा। अधिकतम परिणाम 5 XOR 25 =28 होगा। इसे हल करने के लिए, हम इन चरणों का पालन कर

  1. C++ में दिए गए नंबरों तक सरणी तत्वों को अधिकतम करें

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