আমাদেরকে 'int arr[]' হিসাবে একটি পূর্ণসংখ্যা টাইপ অ্যারে এবং 'x' হিসাবে একটি পূর্ণসংখ্যা টাইপ ভেরিয়েবল দেওয়া হয়েছে। কাজটি হল একটি বিন্যাসের সমস্ত উপাদানকে এমনভাবে পুনর্বিন্যাস করা যাতে সেগুলি একটি প্রদত্ত পূর্ণসংখ্যার মান 'x' দ্বারা বিভাজ্য হবে এবং বিন্যাসটি ক্রমবর্ধমান ক্রমে হওয়া উচিত।
আসুন এর জন্য বিভিন্ন ইনপুট আউটপুট পরিস্থিতি দেখি -
ইনপুট − int arr[] ={4,24, 3, 5, 7, 22, 12, 10}, int x =2
আউটপুট − বিন্যাসের সমস্ত উপাদানের পুনর্বিন্যাস যা x 2 এর গুণিতক হ্রাস ক্রমে:4 10 3 5 7 12 22 24
ব্যাখ্যা −আমাদের একটি পূর্ণসংখ্যা টাইপ অ্যারে দেওয়া হয়েছে যাতে মান রয়েছে {4,24, 3, 5, 7, 22, 12, 10} এবং x এর মান 2। এখন প্রথমে আমরা একটি অ্যারে থেকে সমস্ত উপাদান পরীক্ষা করব যা বিভাজ্য। 2 দ্বারা অর্থাৎ 4, 24, 22, 12, 10। এখন আমরা সমস্ত উপাদানকে ক্রমবর্ধমান ক্রমানুসারে সাজাব। 4, 10, 3, 5, 7, 12, 22, 24 যা চূড়ান্ত আউটপুট।
ইনপুট − nt arr[] ={4,24, 3, 5, 7, 22, 12, 10}, int x =3
আউটপুট − বিন্যাসের সমস্ত উপাদানের পুনর্বিন্যাস যা x 3 এর গুণিতক হ্রাস ক্রমে:4 3 12 5 7 22 24 10
ব্যাখ্যা − আমাদেরকে একটি পূর্ণসংখ্যা টাইপ অ্যারে দেওয়া হয়েছে যাতে মান রয়েছে {4,24, 3, 5, 7, 22, 12, 10} এবং x এর মান 3। এখন প্রথমে আমরা একটি অ্যারে থেকে সমস্ত উপাদান পরীক্ষা করব যা দ্বারা বিভাজ্য 3 অর্থাৎ 3, 24, 12৷ এখন আমরা সমস্ত উপাদানকে ক্রমবর্ধমান ক্রমে সাজাব যেমন 4, 3, 12, 5, 7, 22, 24, 10 যা চূড়ান্ত আউটপুট৷
নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ
-
একটি পূর্ণসংখ্যা টাইপ অ্যারে ঘোষণা. একটি অ্যারের আকার গণনা করুন এবং এটিকে একটি ভেরিয়েবল নামক আকারে সংরক্ষণ করুন। একটি পূর্ণসংখ্যা টাইপ ভেরিয়েবল 'x' ঘোষণা করুন যার বিপরীতে আমাদের একটি অ্যারে পুনরায় সাজাতে হবে।
-
Rearrange_Elements(arr, size, x)
ফাংশনে ডেটা পাস করুন -
ফাংশনের ভিতরে Rearrange_Elements(arr, size, x)
-
পূর্ণসংখ্যার মান সংরক্ষণ করে ভেক্টর টাইপের vec হিসাবে একটি ভেরিয়েবল তৈরি করুন।
-
i থেকে 0 পর্যন্ত FOR লুপ শুরু করুন যতক্ষণ না আমি আকারের চেয়ে কম। লুপের ভিতরে, IF arr[i] % x =0 চেক করুন তারপর arr[i] কে vec এ চাপুন
-
C++ STL সাজানোর পদ্ধতি ব্যবহার করে একটি অ্যারে সাজান যেখানে আমরা ফাংশনের প্যারামিটার হিসেবে begin() এবং end() পাস করব।
-
i থেকে 0 পর্যন্ত FOR লুপ শুরু করুন যতক্ষণ না আমি আকারের চেয়ে কম। IF arr[i] % x =0 চেক করুন তারপর arr[i] কে vec[j++] এ সেট করুন।
-
একটি অ্যারের প্রথম উপাদান থেকে শেষ উপলব্ধ উপাদান পর্যন্ত এটিকে অতিক্রম করে ফর লুপ ব্যবহার করে একটি অ্যারে প্রিন্ট করুন৷
-
উদাহরণ
#include <bits/stdc++.h> using namespace std; void Rearrange_Elements(int arr[], int size, int x){ vector<int> vec; int j = 0; for(int i = 0; i < size; i++){ if(arr[i] % x == 0){ vec.push_back(arr[i]); } } sort(vec.begin(), vec.end()); for (int i = 0; i < size; i++){ if(arr[i] % x == 0){ arr[i] = vec[j++]; } } cout<<"Rearrangement of all elements of array which are multiples of x "<<x<<" in decreasing order is: "; for(int i = 0; i < size; i++){ cout << arr[i] << " "; } } int main(){ int arr[] = {4,24, 3, 5, 7, 22, 12, 10}; int x = 2; int size = sizeof(arr) / sizeof(arr[0]); Rearrange_Elements(arr, size, x); return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট তৈরি করবে
Rearrangement of all elements of array which are multiples of x 2 in decreasing order is: 4 10 3 5 7 12 22 24