কম্পিউটার টিউটোরিয়াল

সি++-এ সকল অপর উপাদানের যোগফলের সাথে निरপেক্ষ পার্থক্য k-এর চেয়ে বড় এমন উপাদান গণনা

একটি ইন্টিজার অ্যারে দেওয়া আছে। লক্ষ্য হল সেসব সংখ্যা গণনা করা যাতে সকল উপাদানের যোগফল এবং সেই উপাদানের মধ্যে निरপেক্ষ পার্থক্য k-এর চেয়ে বড়।

প্রথমে অ্যারের সব উপাদানের যোগফল (sum) বের করা হয়। তারপর প্রতিটি উপাদান arr[i] এর জন্য যাচাই করা হয়: sum - 2*arr[i] > k কিনা। কারণ sum-এ arr[i] একবার থাকায়, তাকে দুবার বিয়োগ করলে বাকি উপাদানগুলোর যোগফলের সাথে তার পার্থক্য পাওয়া যায়। শর্ত পূরণ করলে count বাড়ানো হয়।

উদাহরণ

ইনপুট: arr[] = { 1,2,3,0,3,2,0,1 }, k=10

আউটপুট: উপাদান সংখ্যা: ২

ব্যাখ্যা: উপাদানগুলোর যোগফল ১২। ১২-১-১=১০, ১২-২-২=৮, ১২-৩-৩=৬, ১২-০-০=১২। শুধু ১২ > ১০, তাই ২টি উপাদান (০গুলো) শর্ত পূরণ করে।

ইনপুট: arr[] = { 1,1,1,1,1 }, k=10

আউটপুট: উপাদান সংখ্যা: ০

ব্যাখ্যা: যোগফল ৫। প্রতিটি ১-এর জন্য ৫-১-১=৩ < ১০।

অ্যাপ্রোচ

  • ইন্টিজার অ্যারে arr[] নেওয়া হয়।
  • numberCount(int arr[], int n, int k) ফাংশন অ্যারে, দৈর্ঘ্য এবং k গ্রহণ করে শর্ত পূরণকারী উপাদান সংখ্যা রিটার্ন করে।
  • প্রাথমিক count ০।
  • সব উপাদানের যোগফল sum-এ হিসাব করা হয়।
  • for লুপে i=0 থেকে i k হয়, count বাড়ানো হয়।

উদাহরণ কোড

#include <bits/stdc++.h>
#include <math.h>
using namespace std;

int numberCount(int arr[], int n, int k) {
    int count = 0;
    int sum = 0;
    for (int i = 0; i < n; i++) {
        sum += arr[i];
    }
    for (int i = 0; i < n; i++) {
        if (abs(sum - arr[i] - arr[i]) > k) {
            count++;
        }
    }
    return count;
}

int main() {
    int Arr[] = { 1,2,3,4 };
    int len = sizeof(Arr) / sizeof(Arr[0]);
    int K = 5;
    cout << endl << "Count of elements: " << numberCount(Arr, len, K);
    return 0;
}

আউটপুট

Count of elements: 2
  1. ফিবোনাচ্চি সংখ্যা যেন করা নোডের ওজন এবং X-এর যোগফল C++-এ

  2. সি++-এ অনির্দেশিত গ্রাফের কানেক্টেড কম্পোনেন্টগুলোর মিনিমাম এলিমেন্টের যোগফল

  3. C++-এ ট্রি-এ X-এর সাথে निरপেক্ষ পার্থক্য সর্বনিম্ন হয় এমন নোড খুঁজে বের করা

  4. C++-এ অ্যারেতে সব জোড়া সन्नিহিত উপাদানগুলোর tuyệt দায়ক পার্থক্য