আমাদের 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.