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

C/C++ में ऐरे हेरफेर और योग


समस्या विवरण

यहां हम एक समस्या देखेंगे, मान लीजिए एक ऐरे दिया गया है। n तत्व हैं। एक और मान S भी दिया गया है। हमें ऐरे में एक तत्व K ढूंढना है, जैसे कि, यदि सभी तत्व जो K से बड़े हैं, उन्हें K के बराबर बना दिया जाए, तो अंतिम ऐरे के सभी तत्वों का योग S के बराबर हो जाए। यदि यह संभव नहीं है, तो -1 वापस करें।

उदाहरण

तत्व: {12, 6, 3, 7, 8}, योग मान = 15
आउटपुट: 3
अंतिम ऐरे: {3, 3, 3, 3, 3}, ऐरे तत्वों का योग S = 15

एल्गोरिदम

getVal(arr, n, S)
शुरुआत
    arr को बढ़ते क्रम में सॉर्ट करें
    sum := 0
    i को 0 से n-1 तक लूप
        यदि sum + (arr[i] * (n - i)), S के समान है, तो
            arr[i] वापस करें
        अंत यदि
        sum := sum + arr[i]
    अंत लूप
    -1 वापस करें
अंत

C++ प्रोग्राम उदाहरण

#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)
            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. - C/C++ में int main() और int main(void) के बीच अंतर

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

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

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

  1. मर्ज सॉर्ट का उपयोग करके ऐरे में इनवर्जन गिनने के लिए C/C++ प्रोग्राम? मर्ज सॉर्ट का उपयोग करके ऐरे में इनवर्जन गिनने के लिए C/C++ प्रोग्राम?

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