কম্পিউটার

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++ এ দেওয়া N এর সমান

  2. C++ এ তিনটি লিঙ্কযুক্ত তালিকায় সাধারণ উপাদান খুঁজুন

  3. C++ ব্যবহার করে x-এর যোগফল এবং এর অঙ্কগুলো n-এর সমান হয় এমন একটি সংখ্যা খুঁজুন।

  4. x এর সমষ্টি এবং এর সংখ্যা C++ এ দেওয়া n-এর সমান