কম্পিউটার

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


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

  1. C++ এ 2D অক্ষর অ্যারেতে প্রদত্ত স্ট্রিংয়ের সংখ্যা

  2. C++ এ প্রদত্ত অঙ্কের যোগফল সহ সংখ্যাগুলি (N এর চেয়ে ছোট বা সমান) গণনা করুন

  3. C++ এ প্রদত্ত সংখ্যার সমান GCD সহ একটি সেটের উপসেটের সংখ্যা গণনা করুন

  4. একটি বাছাই করা দ্বিগুণ লিঙ্কযুক্ত তালিকায় ট্রিপলেট গণনা করুন যার পণ্য C++ এ একটি প্রদত্ত মানের x সমান।