কম্পিউটার টিউটোরিয়াল

সর্বোচ্চ বার ঘটে এমন যোগফল পেয়ারগুলো প্রিন্ট করা C++-তে


এই সমস্যায়, n ইউনিক ইন্টিজারগুলোর একটি অ্যারে দেওয়া থাকে। এবং আমাদের অ্যারের দুটি ইন্টিজারের যোগফল খুঁজে বের করতে হবে যেটির ফ্রিকোয়েন্সি সর্বোচ্চ। সমস্যাটির একাধিক সমাধান থাকতে পারে এবং আপনাকে সবগুলো খুঁজে বের করতে হবে।

ইনপুট: array = { 1, 12, 5, 7, 9, 11} আউটপুট: 16 12

ব্যাখ্যা: যোগফল ১৬ এবং ১২ দুবার করে ঘটেছে।

5 + 11 = 16 & 7 + 9 = 16 1 + 11 = 12 & 5 + 7 = 12

এখন এই সমস্যাটি সমাধান করার জন্য, আমাদের পদ্ধতি হলো প্রতিটি যোগফল পেয়ার এর ঘটনা চেক করা এবং সর্বোচ্চ ঘটনার পেয়ার প্রিন্ট করা।

সমাধানের ধাপসমূহ:

ধাপ ১: সব পেয়ার ওভার ইটারেট করুন। ধাপ ২: হ্যাশ টেবিল ব্যবহার করে যোগফল পেয়ার এর ঘটনা কাউন্ট করুন। ধাপ ৩: ইটারেশন প্রসেস শেষ হলে, সর্বোচ্চ ঘটনার যোগফল পেয়ার প্রিন্ট করুন।

C++ উদাহরণ

#include <bits/stdc++.h> using namespace std; void sumPairs(int a[], int n){ unordered_map<int, int> pairSum; for (int i = 0; i < n - 1; i++) { for (int j = i + 1; j < n; j++) { pairSum[a[i] + a[j]]++; } } int occur = 0; for (auto it : pairSum) { if (it.second > occur) { occur = it.second; } } for (auto it : pairSum) { if (it.second == occur) cout << it.first <<"\t"; } } int main(){ int a[] = { 1, 12, 5, 7, 9, 11 }; int n = sizeof(a) / sizeof(a[0]); cout<<"The sum pairs with max ccurence are : "<<endl; sumPairs(a, n); return 0; }

আউটপুট

সর্বোচ্চ ঘটনার যোগফল পেয়ারগুলো হলো:

16 12
  1. অনসcaffoldড গ্রাফের সব সাইকেল প্রিন্ট করা C++-তে

  2. ইনপুট স্ট্রিংয়ের সব ডুপ্লিকেট ক্যারেক্টার প্রিন্ট করা C++-তে

  3. বিজোড় এবং জোড় সংখ্যক নোড वाले ট্রি লেভেল প্রিন্ট করা C++-তে

  4. সি++ প্রোগ্রাম: নির্দিষ্ট অঙ্ক d ধারণকারী সংখ্যাগুলো খুঁজে বের করা