একটি অ্যারে 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 আউটপুট: ট্রিপলেট সংখ্যা: ০ ব্যাখ্যা: যেকোনো দুটির যোগফল ৪ যা তৃতীয়টি ২-এর সমান নয়।উদাহরণ
অ্যাপ্রোচ
countTriplets(int arr[], int n) ফাংশন অ্যারে এবং দৈর্ঘ্য গ্রহণ করে একটি সংখ্যা অন্য দুটির যোগফল হয় এমন ট্রিপলেট রিটার্ন করে।উদাহরণ কোড
#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