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

সি++-এ একটি সংখ্যা অন্য দুটির যোগফল হয় এমন ট্রিপলেট গণনা

একটি অ্যারে Arr[] দেওয়া আছে দৈর্ঘ্য n। লক্ষ্য হল ট্রিপলেট (Arr[i], Arr[j], Arr[k]) গণনা করা যাতে যেকোনো দুটি সংখ্যার যোগফল তৃতীয় সংখ্যার সমান। অর্থাৎ a+b=c, যেখানে a,b,c Arr[]-এর উপাদান এবং 0<=i

তিনটি for লুপ দিয়ে চেক করা হয়। arr[x]+arr[y]=arr[z] এবং x!=y!=z হলে count বাড়ানো হয়।

উদাহরণ

ইনপুট: arr[] = { 1,2,2,3,4 }, N=5

আউটপুট: ট্রিপলেট সংখ্যা: ৪

ব্যাখ্যা: ট্রিপলেট যেখানে arr[x]+arr[y]=arr[z]: (1,2,3), (1,2,3), (1,3,4), (2,2,4)। মোট ৪টি।

ইনপুট: arr[] = {2,2,2,2,2}, N=5

আউটপুট: ট্রিপলেট সংখ্যা: ০

ব্যাখ্যা: যেকোনো দুটির যোগফল ৪ যা তৃতীয়টি ২-এর সমান নয়।

অ্যাপ্রোচ

  • ইন্টিজার অ্যারে Arr[] নেওয়া হয়।
  • N ভেরিয়েবলে দৈর্ঘ্য।
  • countTriplets(int arr[], int n) ফাংশন অ্যারে এবং দৈর্ঘ্য গ্রহণ করে একটি সংখ্যা অন্য দুটির যোগফল হয় এমন ট্রিপলেট রিটার্ন করে।
  • প্রাথমিক count ০।
  • তিনটি নেস্টেড for লুপ: আউটার 0<=i
  • যদি arr[i]+arr[j]==arr[k] বা arr[i]+arr[k]==arr[j] বা arr[k]+arr[j]==arr[i] হয়, count বাড়ানো হয়।

উদাহরণ কোড

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

int countTriplets(int arr[], int n) {
    int count = 0;
    for (int i = 0; i < n-2; i++) {
        for (int j = i+1; j < n-1; j++) {
            for (int k = j+1; k < n; k++) {
                if (arr[i]+arr[j]==arr[k] || arr[j]+arr[k]==arr[i] || arr[k]+arr[i]==arr[j]) {
                    count++;
                }
            }
        }
    }
    return count;
}

int main() {
    int Arr[] = { 1,2,2,3,4 };
    int N = 5;
    cout << endl << "Number of triplets : " << countTriplets(Arr, N);
    return 0;
}

আউটপুট

Number of triplets : 4
  1. C++-এ 2 x n গ্রিডে আঁচবিক উপাদান ছাড়া সর্বোচ্চ যোগফল

  2. C++-এ অ্যারে উপাদান গণনা যা অন্যান্য সব উপাদানের যোগফলকে ভাগ করে

  3. C++-এ তিনটি সংখ্যা খুঁজুন যাতে দুটির যোগফল তৃতীয়টির সমান

  4. C++-এ একটি সংখ্যা দুটি অবানড্যান্ট নম্বরের যোগফল হিসেবে প্রকাশ করা যায় কিনা তা যাচাই করা