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

C++-এ অপারেশন দিয়ে অ্যারেতে সমান সংখ্যার সর্বোচ্চ কাউন্ট

আমাদের একটি ইন্টিজার অ্যারে দেওয়া আছে। অপারেশন: দুটি এলিমেন্ট a[i], a[j] (i!=j) বেছে নিয়ে a[i]++, a[j]--। এই অপারেশন বারবার করে অ্যারেতে সমান সংখ্যার সর্বোচ্চ কাউন্ট বের করা।

সমাধান: অ্যারের সাম শুধু। যদি sum % n == 0 হয় তবে সব n টি এলিমেন্ট সমান করা যায় (sum/n)। অন্যথায় n-1 টি এলিমেন্ট সমান করা যায়।

ইনপুট

Arr[]= { 1,2,3 }

আউটপুট

Maximum count of equal numbers : 3

ব্যাখ্যা: Sum=6, 6%3=0 -> সব ৩টি ২ হয়ে যাবে।

ইনপুট

Arr[]= { 1,2,4 }

আউটপুট

Maximum count of equal numbers : 2

ব্যাখ্যা: Sum=7, 7%3=1 -> ২টি ৩ হয়ে যাবে, ১টি ১ থাকবে।

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

  • maxEqual(int arr[], int n) ফাংশন।
  • sum ক্যালকুলেট।
  • sum % n == 0 হলে n রিটার্ন, অন্যথায় n-1।

উদাহরণ কোড

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

int maxEqual(int arr[], int n){
    int sum = 0;
    for (int i = 0; i < n; i++) sum += arr[i];
    if (sum % n == 0) return n;
    return n - 1;
}

int main(){
    int Arr[] = { 1, 4, 1, 2 };
    int size = 4;
    cout << " Maximum count of equal numbers :" << maxEqual(Arr, size);
    return 0;
}

আউটপুট

Maximum count of equal numbers: 4
  1. C++-এ প্রতিটি উপাদানের ডানে কতগুলো ছোট সংখ্যা আছে (Count of Smaller Numbers After Self)

  2. C++-এ নির্দিষ্ট রেঞ্জে ফ্যাক্টোরিয়াল সংখ্যা গণনা

  3. C++-এ অ্যারেতে দুটি সংখ্যার সর্বোচ্চ XOR

  4. C++-এ দেওয়া সংখ্যা পর্যন্ত অ্যারে উপাদান সর্বাধিক করা