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. सी++ में तीन लिंक्ड सूचियों में सामान्य तत्व खोजें

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

  1. ऐसी संख्या x ज्ञात कीजिए कि C++ का प्रयोग करते हुए x और उसके अंकों का योग दिए गए n के बराबर हो।

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

  1. ऐसी संख्या x ज्ञात कीजिए कि C++ में x और उसके अंकों का योग दिए गए n के बराबर हो

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