কম্পিউটার

একটি সাজানো অ্যারেতে জোড়া গণনা করুন যার যোগফল C++ এ x এর চেয়ে কম


আমাদেরকে পূর্ণসংখ্যার ধরণের উপাদানগুলির একটি সাজানো অ্যারে দেওয়া হয়েছে এবং একটি পূর্ণসংখ্যার পরিবর্তনশীল x দেওয়া হয়েছে এবং কাজটি হল প্রদত্ত অ্যারে থেকে জোড়া তৈরি করা এবং জোড়ার উপাদানগুলির যোগফল গণনা করা এবং গণনা করা যোগফল x এর চেয়ে কম কি না তা পরীক্ষা করা৷

ইনপুট − int arr[] ={2, 7, 1, 0, 8}, int x =8

আউটপুট − একটি সাজানো অ্যারেতে জোড়ার সংখ্যা যার যোগফল x-এর চেয়ে কম −4

ব্যাখ্যা − প্রদত্ত অ্যারে থেকে যে জোড়াগুলি তৈরি করা যেতে পারে তা হল:(2, 7) =9 (x এর চেয়ে বড়), (2, 1) =3 (x এর চেয়ে কম), (2, 0) =2 (x এর চেয়ে কম) ), (2, 8) =10 (x এর চেয়ে বড়), (7, 1) =8 (x এর সমান), (7, 0) =7 (x এর চেয়ে কম), (7, 8) =15 (বড়) x এর চেয়ে), (1, 0) =1 (x এর চেয়ে কম), (1, 8) =8 (x এর সমান), (0, 8) =8 (x এর সমান)। সুতরাং x এর চেয়ে কম যোগফল সহ জোড়া (4, 0) এবং (2, 2)। সুতরাং, x এর চেয়ে কম যোগফল সহ জোড়ার সংখ্যা 4।

ইনপুট − int arr[] ={2, 4, 6, 8}, int x =10

আউটপুট − একটি সাজানো অ্যারেতে জোড়ার সংখ্যা যার যোগফল x-এর চেয়ে কম − 2

ব্যাখ্যা − প্রদত্ত অ্যারে থেকে যে জোড়াগুলি তৈরি করা যেতে পারে তা হল:(2, 4) =6 (x এর চেয়ে কম), (2, 6) =8 (x এর চেয়ে কম), (2, 8) =10 (x এর সমান ), (4, 6) =10 (x এর সমান), (4, 8) =12 (x এর চেয়ে বড়), (6, 8) =14 (x এর চেয়ে বড়)। সুতরাং, x এর চেয়ে কম যোগফল সহ জোড়ার সংখ্যা 2।

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

প্রদত্ত সমস্যা সমাধানের জন্য একাধিক পন্থা হতে পারে যেমন নিষ্পাপ দৃষ্টিভঙ্গি এবং দক্ষ পদ্ধতি। তাই আসুন প্রথমে নিষ্পাপ পদ্ধতির দিকে তাকাই .

  • পূর্ণসংখ্যা উপাদানগুলির একটি অ্যারে ইনপুট করুন এবং একটি অ্যারের আকার গণনা করুন এবং ফাংশনে ডেটা পাস করুন

  • x এর চেয়ে কম যোগফল সহ জোড়ার গণনা সংরক্ষণ করতে একটি অস্থায়ী পরিবর্তনশীল গণনা ঘোষণা করুন।

  • একটি অ্যারের আকার পর্যন্ত i থেকে 0 পর্যন্ত লুপ শুরু করুন

  • লুপের ভিতরে, একটি অ্যারের আকার পর্যন্ত j থেকে i + 1 পর্যন্ত আরেকটি লুপ FOR শুরু করুন

  • লুপের ভিতরে যোগফলকে arr[i] + arr[j] হিসাবে গণনা করুন এবং IF যোগফল চেক করুন

  • গণনা ফেরত দিন

  • প্রিন্ট ফলাফল।

দক্ষ পদ্ধতি

  • পূর্ণসংখ্যা উপাদানগুলির একটি অ্যারে ইনপুট করুন এবং একটি অ্যারের আকার গণনা করুন এবং ফাংশনে ডেটা পাস করুন

  • x এর চেয়ে কম যোগফল সহ জোড়ার গণনা সংরক্ষণ করতে একটি অস্থায়ী পরিবর্তনশীল গণনা ঘোষণা করুন।

  • arr_0 কে 0 এবং arr_1 কে সাইজ-1 হিসাবে সেট করুন

  • স্টার্ট লুপ FOR arr_0 থেকে arr_1

    পর্যন্ত
  • লুপের ভিতরে, IF arr[arr_0] + arr[arr_1]

  • গণনা ফেরত দিন

  • ফলাফল প্রিন্ট করুন।

উদাহরণ (নিষ্পাপ পদ্ধতি)

#include <iostream>
using namespace std;
int pair_sum(int arr[], int size, int x){
   int count = 0;
   int sum = 0;
   for(int i = 0 ;i <size ; i++){
      for(int j = i+1; j<size; j++){
         sum = arr[i] + arr[j];
         if(sum < x){
            count++;
         }
      }
   }
   return count;
}
int main(){
   int arr[] = {2, 7, 1, 0, 8};
   int size = sizeof(arr) / sizeof(arr[0]);
   int x = 8;
   cout<<"Count of pairs in a sorted array whose sum is less than x are: "<<pair_sum(arr, size, x);
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
Count of pairs in a sorted array whose sum is less than x are: 4

উদাহরণ (দক্ষ পদ্ধতি)

#include <iostream>
using namespace std;
int pair_sum(int arr[], int size, int x){
   int arr_0 = 0;
   int arr_1 = size-1;
   int count = 0;
   while(arr_0 < arr_1){
      if (arr[arr_0] + arr[arr_1] < x){
         count = count + (arr_1 - arr_0);
         arr_0++;
      }
      else{
         arr_1--;
      }
   }
   return count;
}
int main(){
   int arr[] = {2, 7, 1, 0, 8};
   int size = sizeof(arr) / sizeof(arr[0]);
   int x = 8;
   cout<<"Count of pairs in a sorted array whose sum is less than x are: "<<pair_sum(arr, size, x);
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
Count of pairs in a sorted array whose sum is less than x are: 4

  1. C++ এ প্রদত্ত অ্যারেতে থাকা স্বতন্ত্র জোড়ার সংখ্যা গণনা করুন

  2. C++ এ একটি অ্যারেতে বিভাজ্য জোড়া গণনা করুন

  3. C++ এ সাজানো বাইনারি অ্যারেতে 1 এর সংখ্যা গণনা করুন

  4. C++ এ একটি সাজানো অ্যারেতে পরম স্বতন্ত্র গণনা?