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