কম্পিউটার

C++ এ [a,b] রেঞ্জের সমষ্টি সহ একটি অ্যারেতে ট্রিপলেটের সংখ্যা গণনা করুন


আমাদের একটি পরিসীমা [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

  1. নোডগুলি গণনা করুন যার সমষ্টি X এর সাথে C++ এ একটি ফিবোনাচি সংখ্যা

  2. C++ ব্যবহার করে একটি অ্যারের মধ্যে একটি সংখ্যার ফ্রিকোয়েন্সি খুঁজুন।

  3. একটি অ্যারেতে ন্যূনতম সংখ্যা যোগ করুন যাতে যোগফল C++ এ সমান হয়?

  4. C++ এ একটি সমষ্টি অ্যারে ধাঁধা?