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

সি++ কোড: অ্যারে d দিয়ে ভাগ করে পজিটিভ মান অর্ধেকের চেয়ে বেশি কিনা যাচাই

একটি অ্যারে A দেওয়া আছে। এমন একটি নন-জিরো ইন্টিজার d খুঁজে বের করতে হবে যাতে, A-এর প্রতিটি উপাদান d দিয়ে ভাগ করলে পজিটিভ মানগুলোর সংখ্যা অ্যারে আকারের অর্ধেক বা তার বেশি হয়। একাধিক d থাকলে যেকোনো একটি রিটার্ন করুন।

উদাহরণ

A = [10, 0, -7, 2, 6] → আউটপুট: 4 (বা 1)
ব্যাখ্যা: n=5, তাই কমপক্ষে ৩টি পজিটিভ দরকার। d=4 হলে অ্যারে হয় [2.5, 0, -1.75, 0.5, 1.5] — এখানে ৩টি পজিটিভ।

সমাধানের ধাপসমূহ

z := 0, f := 0
n := A-এর সাইজ
for i := 0 to n-1:
    a := A[i]
    if a > 0: z++
    if a < 0: f++
if 2*z >= n: return 1
else if 2*f >= n: return -1
else return 0

সি++ কোড উদাহরণ

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

int solve(vector<int> A) {
    int z = 0, f = 0, n = A.size();
    for (int i = 0; i < n; i++) {
        int a = A[i];
        if (a > 0) z++;
        if (a < 0) f++;
    }
    if (2 * z >= n) return 1;
    else if (2 * f >= n) return -1;
    else return 0;
}

int main() {
    vector<int> A = {10, 0, -7, 2, 6};
    cout << solve(A) << endl;
}

ইনপুট

{ 10, 0, -7, 2, 6 }

আউটপুট

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

  2. C++-তে অ্যারে আকার অর্ধেক করতে_MINIMUM সেট আকার নির্ণয়

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

  4. C++-এ অ্যারে এলিমেন্ট যোগ করা যতক্ষণ না সব এলিমেন্ট k-এর চেয়ে বড় বা সমান হয়