জোড় বা বিজোড় সংখ্যার একই গণনা সহ অ্যারে সূচী খুঁজে বের করা হল এমন একটি সংখ্যা যেটির উভয় পাশে সংখ্যা বা বিজোড় সংখ্যার সমান সংখ্যা রয়েছে যেমন বামে সংখ্যা =no.s ডানে৷
এখানে, আমাদের ধারণার সাথে সম্পর্কিত কিছু সংজ্ঞা দরকার,
অ্যারে - একই ডেটা টাইপের উপাদানগুলির একটি ধারক৷
৷অ্যারে সূচক - একটি উপাদানের অবস্থানকে তার সূচক বলা হয়। অ্যারের সূচক সর্বদা 0 থেকে শুরু হয়।
জোড় সংখ্যা − একটি সংখ্যা যা 2 দ্বারা বিভাজ্য।
বিজোড় সংখ্যা − একটি সংখ্যা যা 2 দ্বারা বিভাজ্য নয়।
একটি পূর্ণ সংখ্যা একটি জোড় সংখ্যা বা একটি বিজোড় সংখ্যা হতে পারে।
এখন, একটি উদাহরণ দেখা যাক যা ধারণাটিকে আরও স্পষ্ট করবে।
Input: arr[] = {4, 3, 2, 1, 2} Output : 2
ব্যাখ্যা
সূচী 2 এ, এর বাম দিকে একটি বিজোড় সংখ্যা এবং ডানদিকে একটি বিজোড় সংখ্যা রয়েছে৷
আমাদের কাছে n পূর্ণসংখ্যার একটি অ্যারে রয়েছে যেখানে অ্যারে উপাদানের সূচী এমনভাবে খুঁজে পাওয়া যায় যাতে এটির বাম পাশে জোড় সংখ্যার উপাদান এবং তার ডানদিকে একটি জোড় সংখ্যা উপাদান থাকে বা আমাদের বিজোড়ের ফ্রিকোয়েন্সি খুঁজে বের করতে হয়। এর বাম দিকের উপাদানের সংখ্যা এটির ডান পাশের উপাদানের বিজোড় সংখ্যার কম্পাঙ্কের সমান যদি এমন কোন শর্ত না থাকে তাহলে আমাদের কে লিখতে হবে ঠিক আছে প্রিন্ট -1 যদি এই ধরনের শর্ত থাকে তবে আমাদের করতে হবে এর সূচক প্রিন্ট করুন
অ্যালগরিদম
উভয় পাশে জোড় বা বিজোড় সংখ্যার গণনা সহ উপাদানের সূচী গণনা করতে, আমাদের প্রদত্ত উপাদানের বাম এবং ডানদিকে উপাদানের সংখ্যা খুঁজে বের করতে হবে।
প্রদত্ত অ্যারে অ্যারে[] , অ্যারের উপাদানের সংখ্যা।
Step 1 : For i -> 0 to n, follow step 2 - 5: Step 2: initialise e_l, o_l, e_r, o_r to 0. Step 3: for j -> o to i Step 3.1 : count values for e_l and o_l. Step 4: for j -> i+1 to n Step 4.1 : count values for e_r and o_r. Step 5: if(e_l == e_r) or (o_l == e_r ) , print i.
উদাহরণ
#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