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

दिए गए प्रतिबंधों के साथ दी गई ऐरे के तत्वों को जोड़ें?


इस समस्या के लिए, दो दी गई ऐरे के तत्वों को जोड़ने के लिए हमारे पास कुछ प्रतिबंध हैं जिनके आधार पर जोड़ा गया मान बदल जाएगा। दो दी गई ऐरे a[] और b[] का योग तीसरी ऐरे c[] में इस तरह स्टोर किया जाता है कि वे एलिमेंट्स के योग को सिंगल डिजिट में देते हैं। और यदि योग के अंकों की संख्या 1 से अधिक है, तो तीसरी ऐरे का एलिमेंट दो सिंगल-डिजिट एलिमेंट्स में विभाजित हो जाएगा। उदाहरण के लिए, यदि योग 27 होता है, तो तीसरी ऐरे इसे 2,7 के रूप में स्टोर करेगी।

Input: a[] = {1, 2, 3, 7, 9, 6}      b[] = {34, 11, 4, 7, 8, 7, 6, 99}
Output: 3 5 1 3 7 1 4 1 7 1 3 6 9 9

व्याख्या

आउटपुट ऐरे और दोनों ऐरे के 0th इंडेक्स से लूप चलाएं। लूप के प्रत्येक पुनरावृत्ति के लिए, हम दोनों ऐरे में अगले एलिमेंट्स पर विचार करते हैं और उन्हें जोड़ते हैं। यदि योग 9 से अधिक है, तो हम योग के व्यक्तिगत अंकों को आउटपुट ऐरे में पुश करते हैं अन्यथा हम योग को स्वयं पुश करते हैं। अंत में, हम बड़े इनपुट ऐरे के शेष एलिमेंट्स को आउटपुट ऐरे में पुश करते हैं।

उदाहरण

#include <iostream>
#include<bits/stdc++.h>
using namespace std;
void split(int n, vector &c) {
    vector temp;
    while (n) {
        temp.push_back(n%10);
        n = n/10;
    }
    c.insert(c.end(), temp.rbegin(), temp.rend());
}
void addArrays(int a[], int b[], int m, int n) {
    vector out;
    int i = 0;
    while (i < m && i < n) {
        int sum = a[i] + b[i];
        if (sum < 10) {
            out.push_back(sum);
        } else {
            split(sum, out);
        }
        i++;
    }
    while (i < m) {
        split(a[i++], out);
    }
    while (i < n) {
        split(b[i++], out);
    }
    for (int x : out)
        cout << x << " ";
}
int main() {
    int a[] = {1, 2, 3, 7, 9, 6};
    int b[] = {34, 11, 4, 7, 8, 7, 6, 99};
    int m =6;
    int n = 8;
    addArrays(a, b, m, n);
    return 0;
}

  1. - दिए गए प्रतिबंधों के साथ मैट्रिक्स में सबसे लंबा पथ खोजें C++ में

    मान लीजिए हमारे पास n क्रम का एक वर्ग मैट्रिक्स है। इसमें सभी अलग-अलग तत्व हैं। तो हमें अधिकतम लंबाई का पथ खोजना है, जैसे कि पथ के साथ सभी सेल 1 के अंतर के साथ बढ़ते क्रम में हों। एक सेल से हम चार दिशाओं में जा सकते हैं। बाएं, दाएं, ऊपर और नीचे। तो यदि मैट्रिक्स इस तरह है - 129 538 467 तो आउटपुट

  1. - ऐरे में गैर-दोहराए गए (अलग) तत्वों का योग खोजें C++ में

    मान लीजिए हमारे पास कुछ तत्वों के साथ एक ऐरे A है। हमें ऐरे में सभी अलग-अलग तत्वों का योग खोजना है। तो यदि A = [5, 12, 63, 5, 33, 47, 12, 63], तो अलग-अलग तत्वों का योग 160 है। डुप्लीकेट तत्वों को एक बार मानने के बाद बस अनदेखा कर दिया जाता है। हम इस समस्या को कुशलता से हल करने के लिए अनऑर्डर्ड सेट का

  1. - C++ में दिए गए अंतर वाली जोड़ी ढूंढें

    समस्या विवरण एक सरणी A दी गई है जिसमें n विभिन्न तत्व हैं। हमें सरणी से एक जोड़ी (x, y) ढूंढनी है जिससे x और y का अंतर दिए गए अंतर d के बराबर हो। उदाहरण के लिए, यदि सरणी A = [10, 15, 26, 30, 40, 70] है और दिया गया अंतर 30 है, तो जोड़ियां (10, 40) और (30, 70) होंगी। हल दृष्टिकोण इस समस्या को हल करन