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

C++ में तीन लिंक्ड लिस्ट से दिए गए नंबर के बराबर योग वाला ट्रिपलेट खोजें


इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो लिंक्ड लिस्ट में उस ट्रिपलेट को ढूंढता है जिसका योग दी गई संख्या के बराबर है।

आइए प्रॉब्लम को हल करने के चरण देखें।

  • लिंक्ड लिस्ट के लिए एक स्ट्रक्चर नोड बनाएं।

  • डमी डेटा के साथ लिंक्ड लिस्ट बनाएं।

  • तीन आंतरिक लूप लिखें तीन तत्वों के लिए जो लिंक्ड लिस्ट के अंत तक पुनरावृति करते हैं।

    • तीन तत्वों को जोड़ें।

    • योग की तुलना दी गई संख्या से करें।

    • यदि दोनों बराबर हैं, तो तत्वों को प्रिंट करें और लूप तोड़ें।

उदाहरण

आइए कोड देखें।

#include <bits/stdc++.h>
using namespace std;

class Node {
public:
    int data;
    Node* next;
};

void insertNewNode(Node** head_ref, int new_data) {
    Node* new_node = new Node();
    new_node->data = new_data;
    new_node->next = (*head_ref);
    *head_ref = new_node;
}

void findTriplet(Node *head_one, Node *head_two, Node *head_three, int givenNumber) {
    bool is_triplet_found = false;
    Node *a = head_one;
    while (a != NULL) {
        Node *b = head_two;
        while (b != NULL) {
            Node *c = head_three;
            while (c != NULL) {
                int sum = a->data + b->data + c->data;
                if (sum == givenNumber) {
                    cout << a->data << " " << b->data << " " << c->data << endl;
                    is_triplet_found = true;
                    break;
                }
                c = c->next;
            }
            if (is_triplet_found) {
                break;
            }
            b = b->next;
        }
        if (is_triplet_found) {
            break;
        }
        a = a->next;
    }
    if (!is_triplet_found) {
        cout << "No triplet found" << endl;
    }
}

int main() {
    Node* head_one = NULL;
    Node* head_two = NULL;
    Node* head_three = NULL;
    insertNewNode(&head_one, 4);
    insertNewNode(&head_one, 3);
    insertNewNode(&head_one, 2);
    insertNewNode(&head_one, 1);
    insertNewNode(&head_two, 4);
    insertNewNode(&head_two, 3);
    insertNewNode(&head_two, 2);
    insertNewNode(&head_two, 1);
    insertNewNode(&head_three, 1);
    insertNewNode(&head_three, 2);
    insertNewNode(&head_three, 3);
    insertNewNode(&head_three, 4);
    findTriplet(head_one, head_two, head_three, 9);
    findTriplet(head_one, head_two, head_three, 100);
    return 0;
}

आउटपुट

यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम मिलेगा।

1 4 4 No triplet found

निष्कर्ष

यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उन्हें टिप्पणी अनुभाग में उल्लेख करें।


  1. - तीन लिंक्ड लिस्ट में सामान्य तत्व खोजें C++ में

    मान लीजिए हमारे पास तीन लिंक्ड लिस्ट हैं। हमें उन सभी सामान्य तत्वों को खोजना है जो इन तीनों लिंक्ड लिस्ट में मौजूद हैं। मान लीजिए ये सूचियां [10, 12, 15, 20, 25], [10, 12, 13, 15] और [10, 12, 15, 24, 25, 26] हैं, तो इन तीनों सूचियों में सामान्य तत्व 10, 12 और 15 हैं। हम इस समस्या को हल करने के लिए

  1. - C++ का उपयोग करके एक संख्या x खोजें जिसके अंकों का योग x के बराबर दिए गए n के बराबर हो

    यहां हम एक समस्या देखेंगे, जहां हम एक संख्या n लेते हैं, हमें एक अन्य मान x ढूंढना है, जैसे कि x + x के अंकों का योग दी गई संख्या n के बराबर हो। मान लीजिए n का मान 21 है। यह प्रोग्राम x = 15 लौटाएगा, क्योंकि 15 + 15 के अंकों का योग (1+5) = 21 = n होता है। इसे हल करने के लिए, हमें सरल दृष्टिकोण अपना

  1. - C++ में दी गई संख्या n के लिए x ढूंढें जहां x + अंकों का योग = n

    समस्या विवरण एक संख्या n दी गई है, हमें एक मान x ढूंढना है जिससे x + x के अंकों का योग = n हो। उदाहरण के लिए, n = 21 के लिए, x = 15 होगा क्योंकि 15 + (1+5) = 21। हल दृष्टिकोण सरल दृष्टिकोण: 1 से n तक पुनरावृति करें, प्रत्येक संख्या के लिए जांचें कि क्या संख्या + उसके अंकों का योग = n है। यदि हां,