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

C++-এ জোড় ইনডেক্সে জোড় সংখ্যা এবং বিজোড় ইনডেক্সে বিজোড় সংখ্যা রাখা

এই সমস্যায়, আমাদের একটি অ্যারে arr[] দেওয়া হয়েছে যার সাইজ n এবং যাতে n/2 জোড় এবং n/2 বিজোড় মান রয়েছে। আমাদের কাজ হলো জোড় সংখ্যাগুলো জোড় ইনডেক্সে এবং বিজোড় সংখ্যাগুলো বিজোড় ইনডেক্সে রাখার প্রোগ্রাম তৈরি করা।

উদাহরণ দিয়ে সমস্যাটি বোঝা যাক

ইনপুট: arr[] = {5, 1, 6, 4, 3, 8}

আউটপুট: arr[] = {6, 1, 5, 4, 3, 8}

সমাধানের পদ্ধতি

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

সমাধানটি ব্যাখ্যা করে প্রোগ্রাম

#include <iostream>
using namespace std;

void O_EReshuffle(int arr[], int n) {
    int oIndex = 1;
    int eIndex = 0;
    for (int i = 0; i < n; ) {
        while (eIndex < n && arr[eIndex] % 2 == 0)
            eIndex += 2;
        while (oIndex < n && arr[oIndex] % 2 == 1)
            oIndex += 2;
        if (eIndex < n && oIndex < n)
            swap(arr[eIndex], arr[oIndex]);
        else
            break;
    }
}

int main() {
    int arr[] = { 5, 1, 6, 4, 3, 8 };
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << "Array before Reshuffling: ";
    for (int i = 0; i < n; i++) {
        cout << arr[i] << "\t";
    }
    O_EReshuffle(arr, n);
    cout << "\nArray after Reshuffling: ";
    for (int i = 0; i < n; i++) {
        cout << arr[i] << "\t";
    }
    return 0;
}

আউটপুট

Array before Reshuffling: 5 1 6 4 3 8 Array after Reshuffling: 4 1 6 5 8 3
  1. বিজোড় এবং জোড় সংখ্যক নোড वाले ট্রি লেভেল প্রিন্ট করা C++-তে

  2. সি++ প্রোগ্রাম: সম এবং বিজোড় অ্যারে থেকে অনুপস্থিত এলিমেন্ট খুঁজে বের করা

  3. সম ইনডেক্সের বাইনোমিয়াল কোইফিসিয়েন্টগুলোর যোগফল বের করা C++-তে

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