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

C++ প্রোগ্রাম: সমান সংখ্যক জোড় বা বিজোড় সংখ্যা থাকা অ্যারে সূচক খুঁজে বের করা


অ্যারে সূচক যেখানে জোড় বা বিজোড় সংখ্যার সংখ্যা দুপাশে সমান থাকে, সেটি খুঁজে বের করা একটি প্রোগ্রামিং সমস্যা। অর্থাৎ, কোনো সূচকের বামপাশে এবং ডানপাশে জোড় সংখ্যাগুলোর সংখ্যা সমান থাকবে অথবা বিজোড় সংখ্যাগুলোর সংখ্যা সমান থাকবে।

প্রয়োজনীয় সংজ্ঞা

  • অ্যারে (Array) — একই ডেটা টাইপের উপাদানগুলির কন্টেইনার।
  • অ্যারে সূচক (Array Index) — উপাদানের অবস্থানকে সূচক বলা হয়। অ্যারে সূচক সবসময় ০ থেকে শুরু হয়।
  • জোড় সংখ্যা (Even number) — ২ দ্বারা বিভাজ্য সংখ্যা।
  • বিজোড় সংখ্যা (Odd number) — ২ দ্বারা বিভাজ্য নয় এমন সংখ্যা।

যেকোনো পূর্ণসংখ্যা হয় জোড় হয় বিজোড়।

উদাহরণ

Input: arr[] = {4, 3, 2, 1, 2} Output : 2

ব্যাখ্যা

সূচক ২-এ, এর বামপাশে একটি বিজোড় সংখ্যা (3) এবং ডানপাশে একটি বিজোড় সংখ্যা (1) আছে। তাই আউটপুট ২।

অ্যালগরিদম

  1. প্রতিটি সূচক i (০ থেকে n-1) এর জন্য:
  2. বামপাশের জোড় ও বিজোড় সংখ্যা গণনা করুন (e_l, o_l)।
  3. ডানপাশের জোড় ও বিজোড় সংখ্যা গণনা করুন (e_r, o_r)।
  4. যদি e_l == e_r অথবা o_l == o_r হয়, তবে সূচক i প্রিন্ট করুন।
  5. কোনো সূচক না মিললে -1 রিটার্ন করুন।

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

#include <iostream>
using namespace std;

int main() {
    int arr[] = {4, 3, 2, 1, 2};
    int n = 5;
    cout << "The array is : ";
    for(int i = 0; i < n; i++) {
        cout << arr[i] << " ";
    }
    cout << "\nThe index of the element with the same count of even or odd numbers on both sides = ";
    for (int i = 0; i < n; i++) {
        int o_l = 0, e_l = 0;
        int o_r = 0, e_r = 0;
        for (int j = 0; j < i; j++) {
            if (arr[j] % 2 == 0) e_l++;
            else o_l++;
        }
        for (int k = n - 1; k > i; k--) {
            if (arr[k] % 2 == 0) e_r++;
            else o_r++;
        }
        if (e_r == e_l || o_r == o_l)
            cout << i << endl;
    }
    return 0;
}

আউটপুট

The array is : 4 3 2 1 2
The index of the element with the same count of even or odd numbers on both sides = 2
  1. বিজোড় এবং জোড় সংখ্যক নোড वाले ট্রি লেভেল প্রিন্ট করা C++-তে

  2. C++ প্রোগ্রাম: দুটি সংখ্যা বের করা যাদের যোগফল ও গুণফল N-র সমান

  3. C++-এ অ্যারে ইনডেক্স যেখানে বাম ও ডান পাশে জোড় বা বিজোড় সংখ্যার কাউন্ট সমান

  4. পাইথনে ভাজকগুলোর গণনা জোড় কি বিজোড় তা যাচাই করার প্রোগ্রাম