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

सी/सी++ का उपयोग कर ऐरे मैनिपुलेशन और योग

यहां हम एक समस्या देखेंगे, मान लीजिए कि एक सरणी दी गई है। एन तत्व हैं। एक अन्य मान S भी दिया गया है। हमें सरणी में एक तत्व K को खोजना है, जैसे कि, यदि सभी तत्व जो K से बड़े हैं, K के बराबर बना दिया जाता है, तो अंतिम सरणी के सभी तत्वों का योग S के बराबर हो जाता है। यदि यह संभव नहीं है, फिर वापसी -1.

मान लीजिए कि तत्व {12, 6, 3, 7, 8} हैं, और योग मान 15 है, आउटपुट 3 है। अंतिम सरणी {3, 3, 3, 3, 3} है, सरणी तत्वों का योग S =है 15

एल्गोरिदम

getVal(arr, n, S) -

Begin
   sort arr as increasing order
   sum := 0
   for i in range 0 to n-1, do
      if sum + (arr[i] * (n - i)) is same as S, then
         return arr[i]
      end if
      sum := sum + arr[i]
   done
   return -1
End

उदाहरण

#include <iostream>
#include <algorithm>
using namespace std;
int getVal(int arr[], int n, int S) {
   sort(arr, arr + n);
   int sum = 0;
   for (int i = 0; i < n; i++) {
      if (sum + (arr[i] * (n - i)) == S) //if current value is satisfying, then return arr[i]
         return arr[i];
      sum += arr[i];
   }
   return -1;
}
int main() {
   int S = 15;
   int arr[] = { 12, 3, 6, 7, 8 };
   int n = sizeof(arr) / sizeof(arr[0]);
   cout << getVal(arr, n, S);
}

आउटपुट

3

  1. सी/सी ++ अंतर मुख्य () और int मुख्य (शून्य) के बीच अंतर

    सी सी प्रोग्रामिंग भाषा में, यदि किसी फ़ंक्शन हस्ताक्षर में कोई पैरामीटर नहीं है तो यह इनपुट के रूप में कई तर्क ले सकता है लेकिन सी ++ के साथ भी ऐसा नहीं है। यदि C++ में ऐसे फ़ंक्शन के लिए तर्क पारित किए जाते हैं तो संकलन विफल हो जाएगा। यही कारण है कि int main() और int main(void) C में समान हैं, ले

  1. C/C++ में pthreads का उपयोग करके मैट्रिक्स का जोड़ और घटाव

    यहां हम देखेंगे कि मल्टीथ्रेडेड वातावरण का उपयोग करके मैट्रिक्स जोड़ और घटाव कैसे करें। pthread का उपयोग C या C++ में एक साथ कई थ्रेड्स को निष्पादित करने के लिए किया जाता है। दो आव्यूह A और B हैं। प्रत्येक आव्यूह का क्रम (m x n) है। प्रत्येक धागा प्रत्येक पंक्ति को लेगा, और जोड़ या घटाव करेगा। तो ए

  1. सी/सी++ प्रोग्राम मर्ज सॉर्ट का उपयोग करके एक सरणी में व्युत्क्रमों की गणना करने के लिए?

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