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

অ্যারে-এ যোগফল ৪ দিয়ে বিভাজ্য জোড়া গণনা C++-এ

একটি অ্যারে দেওয়া থাকলে, কতটি জোড়ার যোগফল ৪ দিয়ে বিভাজ্য তা গণনা করতে হবে। এটি উপরের সমস্যায় k=4 নির্দিষ্ট করে 스페শালাইজড সংস্করণ।

উদাহরণ

ইনপুট: arr = [4, 1, 2, 0, 2]

বৈধ জোড়া: (4,0), (2,2) → মোট 2টি

অ্যালগরিদম (O(n) মডুলো ৪ ফ্রিকোয়েন্সি)

  1. রিমাইন্ডার ০, ১, ২, ৩ এর ফ্রিকোয়েন্সি গণনা করুন।
  2. বৈধ জোড়া কম্বিনেশন:
    • (০, ০): freq[0] * (freq[0]-1) / 2
    • (২, ২): freq[2] * (freq[2]-1) / 2
    • (১, ৩): freq[1] * freq[3]
  3. সর্বমোট যোগফল রিটার্ন করুন।

C++ কোড উদাহরণ

#include <iostream>
using namespace std;

int countPairsDivBy4(int arr[], int n) {
    int freq[4] = {0};
    for (int i = 0; i < n; i++)
        freq[arr[i] % 4]++;
    
    int count = 0;
    count += freq[0] * (freq[0] - 1) / 2;  // (0,0)
    count += freq[2] * (freq[2] - 1) / 2;  // (2,2)
    count += freq[1] * freq[3];            // (1,3)
    
    return count;
}

int main() {
    int arr[] = {4, 1, 2, 0, 2};
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << "Count: " << countPairsDivBy4(arr, n);
    return 0;
}

ইনপুট

[4, 1, 2, 0, 2]

আউটপুট

2
  1. C++-এ অ্যারেতে সকল জোড়ার XOR-এর যোগফল

  2. C++-এ অ্যারেতে যেসব স্বতন্ত্র জোড়ার যোগফল অ্যারেতেই আছে তাদের গণনা

  3. C++-এ অ্যারেতে ভাগযোগ্য জোড়া গণনা

  4. C++-এ অ্যারেতে কম্পোজিট উপাদান গণনা ও যোগফল