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

C++-এ একটি অ্যারে পুনর্বিন্যাস করুন যাতে arr[i] = i হয়

আমাদের একটি ধনাত্মক পূর্ণসংখ্যা টাইপের অ্যারে দেওয়া আছে, ধরুন arr[] যেকোনো দেওয়া আকারের যাতে অ্যারেতে উপাদানগুলির মান ০-এর চেয়ে বড় কিন্তু অ্যারের আকারের চেয়ে ছোট। কাজটি হল অ্যারেটিকে এমনভাবে পুনর্বিন্যাস করা যাতে যদি arr[i] 'i' হয়, যদি 'i' অ্যারেতে উপস্থিত থাকে তবে অন্যথায় arr[i] উপাদানটিকে -1 মান দিয়ে সেট করা হবে এবং চূড়ান্ত ফলাফলটি প্রিন্ট করা হবে।

বিভিন্ন ইনপুট-আউটপুট পরিস্থিতি দেখে নিই -

ইনপুট - int arr[] = {0, 8, 1, 5, 4, 3, 2, 9 }

আউটপুট - অ্যারের পুনর্বিন্যাস যাতে arr[i] = i: 0 1 2 3 4 5 -1 -1

ব্যাখ্যা - আমাদের আকার ৮-এর একটি পূর্ণসংখ্যা অ্যারে দেওয়া আছে এবং অ্যারেতে সকল উপাদানের মান ৮-এর চেয়ে কম। এখন আমরা অ্যারেটিকে পুনর্বিন্যাস করব:

arr[0] = 0(অ্যারেতে উপস্থিত) arr[1] = 1(অ্যারেতে উপস্থিত) arr[2] = 2(অ্যারেতে উপস্থিত) arr[3] = 3(অ্যারেতে উপস্থিত) arr[4] = 4(অ্যারেতে উপস্থিত) arr[5] = 5(অ্যারেতে উপস্থিত) arr[6] = -1(অ্যারেতে অনুপস্থিত) arr[7] = -1(অ্যারেতে অনুপস্থিত)

ইনপুট - int arr[] = {1, 2, 6, 9, 10}

আউটপুট - অ্যারের পুনর্বিন্যাস যাতে arr[i] = i: -1 1 2 -1 -1

ব্যাখ্যা - আমাদের আকার ৫-এর একটি পূর্ণসংখ্যা অ্যারে দেওয়া আছে এবং অ্যারেতে সকল উপাদানের মান ৫-এর চেয়ে কম। এখন আমরা অ্যারেটিকে পুনর্বিন্যাস করব:

arr[0] = -1(অ্যারেতে অনুপস্থিত) arr[1] = 1(অ্যারেতে উপস্থিত) arr[2] = 2(অয়ারেতে উপস্থিত) arr[3] = -1(অ্যারেতে অনুপস্থিত) arr[4] = -1(অ্যারেতে অনুপস্থিত)

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

  • পূর্ণসংখ্যা টাইপের উপাদান 지닌 একটি অ্যারে ইনপুট নিন এবং অ্যারের আকার গণনা করুন।
  • পুনর্বিন্যাসের আগে অ্যারে প্রিন্ট করুন এবং Rearranging(arr, size) ফাংশনটি কল করুন।
  • Rearranging(arr, size) ফাংশনের ভিতরে:
    • একটি পূর্ণসংখ্যা টাইপের ভেরিয়েবল ঘোষণা করুন, ধরুন ptr
    • i = ০ থেকে size পর্যন্ত একটি FOR লুপ শুরু করুন। লুপের ভিতরে j = ০ থেকে size পর্যন্ত একটি অন্য FOR লুপ শুরু করুন।
    • লুপের ভিতরে চেক করুন IF arr[j] == i তবে ptr = arr[j], arr[j] = arr[i], arr[i] = ptr সেট করুন এবং break করুন।
    • i = ০ থেকে size পর্যন্ত একটি FOR লুপ শুরু করুন। লুপের ভিতরে চেক করুন IF arr[i] != i তবে arr[i] = -1 সেট করুন।
  • মানগুলোর পুনর্বিন্যাসের পর অ্যারে প্রিন্ট করুন।

উদাহরণ

#include <iostream> 
using namespace std; 

void Rearranging(int arr[], int size){ 
    int ptr; 
    for(int i = 0; i < size; i++){ 
        for(int j = 0; j < size; j++){ 
            if(arr[j] == i){ 
                ptr = arr[j]; 
                arr[j] = arr[i]; 
                arr[i] = ptr; 
                break; 
            } 
        } 
    } 
    for(int i = 0; i < size; i++){ 
        if(arr[i] != i){ 
            arr[i] = -1; 
        } 
    } 
} 

int main(){ 
    int arr[] = {0, 8, 1, 5, 4, 3, 2, 9 }; 
    int size = sizeof(arr) / sizeof(arr[0]); 
    //অ্যারে পুনর্বিন্যাস করার জন্য ফাংশন কল
    Rearranging(arr, size); 
    //অ্যারে প্রিন্ট করা
    cout<<"Rearrangement of an array such that arr[i] = i is: "; 
    for(int i = 0; i < size; i++){ 
        cout << arr[i] << " "; 
    } 
}

আউটপুট

উপরোক্ত কোডটি রান করলে নিচের আউটপুটটি জেনারেট হবে

Rearrangement of an array such that arr[i] = i is: 0 1 2 3 4 5 -1 -1
  1. অ্যারেতে a+b+c=d হওয়া সর্বোচ্চ d বের করা (C++)

  2. অ্যারেতে এমন মৌলিক সংখ্যা K খুঁজে বের করা যাতে (A[i] % K) সর্বোচ্চ হয় C++-তে

  3. সর্বনিম্ন x খুঁজে বের করা যাতে (x % k) * (x / k) == n C++-তে

  4. C++ ব্যবহার করে অ্যারেতে a % b = k সেটি করার সব জোড়া (a, b) বের করা