কম্পিউটার

C+=+ এ আরোহী ক্রমে বিকল্প ফ্যাশনে বিজোড় এবং জোড় মান পুনরায় সাজান


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

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

ইনপুট − int arr[] ={ 1, 1, 2, 2, 5, 4 }

আউটপুট − ক্রমবর্ধমান ক্রমে বিকল্প ফ্যাশনে বিজোড় এবং জোড় মানগুলির পুনর্বিন্যাস হল:1 2 1 2 5 4৷

ব্যাখ্যা − আমাদের একটি পূর্ণসংখ্যা টাইপ অ্যারে দেওয়া হয়েছে। এখন আমরা পরীক্ষা করব কোনটি অ্যারের সবচেয়ে ছোট উপাদান অর্থাৎ 1 যা বিজোড় মান তাই উপাদানগুলিকে বিজোড় প্রথম এবং জোড় দ্বিতীয় পদ্ধতিতে সাজানো হবে অর্থাৎ 1 2 1 2 5 4 হল চূড়ান্ত আউটপুট৷

ইনপুট − int arr[] ={ 6, 3, 2, 8, 10, 4 }

আউটপুট − আরোহী ক্রমে বিকল্প ফ্যাশনে বিজোড় এবং জোড় মানগুলির পুনর্বিন্যাস হল:2 3 4 0 6 0

ব্যাখ্যা − আমাদের একটি পূর্ণসংখ্যা টাইপ অ্যারে দেওয়া হয়েছে। এখন আমরা পরীক্ষা করব যে একটি অ্যারের সবচেয়ে ছোট উপাদান কোনটি অর্থাৎ 2 যা জোড় মান তাই elem

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

  • পূর্ণসংখ্যা ধরনের উপাদানগুলির একটি অ্যারে ইনপুট করুন এবং একটি অ্যারের আকার গণনা করুন৷

  • সাজানোর ফাংশনে অ্যারের অ্যারে এবং সাইজ পাস করে C++ STL-এর সাজানোর পদ্ধতি ব্যবহার করে একটি অ্যারে সাজান।

  • একটি পূর্ণসংখ্যা ভেরিয়েবল ঘোষণা করুন এবং ফাংশন পুনর্বিন্যাস(arr, size) এ কল দিয়ে সেট করুন

  • ফাংশনের ভিতরে পুনর্বিন্যাস (আর, আকার)

    • দুটি ভেরিয়েবল তৈরি করুন 'vec_1' এবং 'vec_2' ভেক্টরের ধরন হিসাবে যা পূর্ণসংখ্যার প্রকারের ডেটা সংরক্ষণ করে৷

    • টেম্প হিসাবে পূর্ণসংখ্যার প্রকারের একটি অস্থায়ী পরিবর্তনশীল তৈরি করুন এবং এটি 0 দিয়ে সেট করুন।

    • বুলের আরেকটি ভেরিয়েবলকে চেক হিসেবে ঘোষণা করুন এবং এটিকে FALSE মান দিয়ে সেট করুন।

    • i থেকে 0 পর্যন্ত FOR লুপ শুরু করুন যতক্ষণ না আমি আকারের চেয়ে কম। লুপের ভিতরে, IF arr[i] % 2 =0 চেক করুন তারপর arr[i] কে vec_1 এ চাপুন। অন্যথায়, arr[i] কে vec_2 এ চাপুন।

    • পূর্ণসংখ্যা ভেরিয়েবলগুলিকে i এবং j থেকে 0 হিসাবে ঘোষণা করুন৷ IF arr[0] % 2 =0 চেক করুন তারপর চেককে সত্যে সেট করুন৷

    • আকারের চেয়ে কম তাপমাত্রায় শুরু করুন। লুপের ভিতরে, IF check =true চেক করুন তারপর arr[temp++] তে vec_1[i++] সেট করুন এবং চেককে !চেক করুন। অন্যথায়, arr[temp++] থেকে vec_2[j++] করুন এবং চেককে !চেক করুন।

  • ফলাফল প্রিন্ট করুন।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
void Rearrangement(int arr[], int size){
   vector<int> vec_1, vec_2;
   int temp = 0;
   bool check = false;
   for(int i = 0; i < size; i++){
      if(arr[i] % 2 == 0){
         vec_1.push_back(arr[i]);
      }
      else{
         vec_2.push_back(arr[i]);
      }
   }
   int i = 0;
   int j = 0;
   if(arr[0] % 2 == 0){
      check = true;
   }
   while(temp < size){
      if(check == true){
         arr[temp++] = vec_1[i++];
         check = !check;
      }
      else{
         arr[temp++] = vec_2[j++];
         check = !check;
      }
   }
}
int main(){
   int arr[] = { 1, 1, 2, 2, 5, 4 };
   int size = sizeof(arr) / sizeof(int);
   //sort an array
   sort(arr, arr + size);
   cout<<"Rearrangement of Odd and Even values in Alternate Fashion in Ascending Order is: ";
   Rearrangement(arr, size);
   for(int i = 0; i < size; i++){
      cout << arr[i] << " ";
   }
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট তৈরি করবে

Rearrangement of Odd and Even values in Alternate Fashion in Ascending Order is: 1 2 1 2 5 4

  1. সংখ্যা জোড় বা বিজোড় কিনা তা পরীক্ষা করার জন্য C++ প্রোগ্রাম

  2. পাইথনে জোড় এবং বিজোড় স্থানে একটি সংখ্যার অঙ্কের গুণফল সমান কিনা তা পরীক্ষা করুন

  3. পাইথনে বিকল্প 0 এবং 1s সহ একটি বাইনারি স্ট্রিং পুনরায় সাজানো সম্ভব কিনা তা পরীক্ষা করুন

  4. পাইথনে ভাজকের সংখ্যা জোড় বা বিজোড় কিনা তা পরীক্ষা করুন