আমাদের Arr[] নম্বরের একটি অ্যারে দেওয়া হয়েছে। লক্ষ্য হল ট্রিপলেটের সংখ্যা গণনা করা যার গুণফল প্রদত্ত সংখ্যা p এর সমান। একই মান কিন্তু ভিন্ন উপাদান সহ একাধিক ট্রিপলেট থাকতে পারে। উদাহরণস্বরূপ, (1,2,3) এবং (3,1,2) অ্যারে [1,2,3,1,2] আলাদা হিসাবে গণনা করা হবে যদি উপাদানগুলি আলাদা হয় তবে মানগুলি একই হয়৷
উদাহরণ দিয়ে বোঝা যাক।
ইনপুট − arr[]={ 1,2,3,2,4,1,5 }, p=4
আউটপুট − ট্রিপলেটের সংখ্যা:3
ব্যাখ্যা −
Triplet 1[ 1,2,3,2,4,1,5 ] → (1,2,2) product=4 Triplet 2 [ 1,2,3,2,4,1,5 ] → (1,4,1) product=4 Triplet 3 [ 1,2,3,2,4,1,5 ] → (2,2,1) product=4 Number of triplets with product 4 is 3.
ইনপুট − arr[]={ 1,1,2,1,2,2 }, p=8
আউটপুট − ট্রিপলেটের সংখ্যা − 1
ব্যাখ্যা −
Triplet 1 [ 1,1,2,1,2,2 ] → (2,2,2) product=8 Number of triplets with product 8 is 1
নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ
-
আমরা একটি পূর্ণসংখ্যার অ্যারে নিই Arr[] এলোমেলো সংখ্যার সাথে শুরু।
-
একটি পরিবর্তনশীল পণ্য নিন যা পণ্যের মান সংরক্ষণ করে। N Arr[] এর দৈর্ঘ্য সংরক্ষণ করে।
-
ফাংশন countTriplets(int arr[],int n,int p) একটি অ্যারে, এর দৈর্ঘ্য এবং পণ্যকে ইনপুট হিসাবে নেয় এবং ট্রিপলেটগুলি প্রদান করে যার গুণফল p এর সমান।
-
ট্রিপলেটের সংখ্যার জন্য প্রাথমিক পরিবর্তনশীল গণনাকে 0 হিসাবে নিন।
-
প্রতিটি ট্রিপলেটের গুণফল হিসাবে প্রারম্ভিক চলক prod নিন। প্রাথমিকভাবে 1.
-
ট্রিপলেটের প্রতিটি উপাদানের জন্য তিনটি লুপ ব্যবহার করে ট্রাভার্স অ্যারে।
-
0<=i
-
prod=arr[i]*arr[j]*arr[k] গণনা করুন। যদি prod==p তাহলে ইনক্রিমেন্ট কাউন্ট।
-
সমস্ত লুপ গণনার শেষে শর্ত পূরণকারী মোট ট্রিপলেট সংখ্যা থাকবে।
-
পছন্দসই ফলাফল হিসাবে গণনা ফেরত দিন।
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
int countTriplets(int arr[],int n,int p){
int count = 0;
int prod=1;
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++){
prod=arr[i]*arr[j]*arr[k];
if ( prod==p ){
count++;
// cout<<endl<<"a :"<<arr[i]<<" b :"<<arr[j]<<" c :"<<arr[k]; //to print
}
}
}
}
}
return count;
}
int main(){
int Arr[]={ 1,2,3,6,1,6,3,2,1};
int N=9; //length of array
int product=6;
cout <<endl<< "Number of triplets : "<<countTriplets(Arr,N,product);
return 0;
} আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেNumber of triplets : 18.