सम या विषम संख्या की समान संख्या के साथ सरणी अनुक्रमणिका ज्ञात करना एक ऐसी संख्या है जिसके दोनों ओर समान संख्याएँ या विषम संख्याएँ होती हैं, अर्थात संख्याएँ बाईं ओर =संख्याएँ दाईं ओर।
यहां, हमें कुछ परिभाषाओं की आवश्यकता है जो अवधारणा से संबंधित हैं,
सरणी - समान डेटा प्रकार के तत्वों का एक कंटेनर।
सरणी अनुक्रमणिका - किसी तत्व की स्थिति को उसका सूचकांक कहते हैं। सरणी का सूचकांक हमेशा 0 से शुरू होता है।
सम संख्या - एक संख्या जो 2 से विभाज्य हो।
विषम संख्या - एक संख्या जो 2 से विभाज्य नहीं है।
एक पूर्ण संख्या या तो सम संख्या या विषम संख्या हो सकती है।
अब, एक उदाहरण देखते हैं जो अवधारणा को और स्पष्ट कर देगा।
Input: arr[] = {4, 3, 2, 1, 2} Output : 2
स्पष्टीकरण
अनुक्रमणिका 2 पर, इसके बाईं ओर एक विषम संख्या है और दाईं ओर एक विषम संख्या है।
हमारे पास n पूर्णांकों की एक सरणी है जहां सरणी तत्व की अनुक्रमणिका को इस तरह से खोजना है कि इसके बाईं ओर तत्वों की संख्या सम संख्या हो और इसके दाईं ओर तत्वों की संख्या सम हो या हमें विषम की आवृत्ति का पता लगाना हो इसके बायीं ओर तत्वों की संख्या इसके दाईं ओर विषम संख्या के तत्वों की आवृत्ति के बराबर है यदि ऐसी कोई स्थिति नहीं है तो हमें ओके प्रिंट -1 लिखना होगा यदि इस प्रकार की स्थिति है तो हमें करना होगा इसकी अनुक्रमणिका प्रिंट करें
एल्गोरिदम
दोनों तरफ सम या विषम संख्याओं की गणना के साथ तत्व के सूचकांक की गणना करने के लिए, हमें दिए गए तत्व के बाईं ओर और दाईं ओर तत्वों की संख्या ज्ञात करनी होगी।
दिया गया सरणी arr[] , n सरणी के तत्वों की संख्या।
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