इनपुट के रूप में एक पूर्णांक चर संख्या को देखते हुए। आइए एक सरणी पर विचार करें जिसमें क्रमबद्ध क्रम में 1 से संख्या तक के तत्व हों। यदि हम एक सरणी पर एक ऑपरेशन करते हैं जैसे कि प्रत्येक चरण में विषम स्थिति वाले तत्व हटा दिए जाते हैं। तब लक्ष्य इस ऑपरेशन को कई बार करना है जब तक कि केवल एक तत्व नहीं बचा है। उस तत्व को अंत में प्रिंट करें।
नोट-:तत्वों की स्थिति ऐसी है कि सूचकांक 0 पर सरणी पहले स्थान पर है और इसी तरह।
सरणी में तत्वों की संख्या के लिए परीक्षण मामले
इनपुट नंबर=1, आउटपुट =1
इनपुट नंबर =2, आउटपुट =2
इनपुट नंबर =3, आउटपुट =2
इनपुट नंबर =4, आउटपुट =4
इनपुट नंबर =5, आउटपुट =4
इनपुट नंबर =6, आउटपुट =4
इनपुट नंबर =7, आउटपुट =4
......पी>
इनपुट नंबर=12, आउटपुट =8
इनपुट नंबर =20, आउटपुट =16
उपरोक्त अवलोकन के आधार पर, 2 i . के बीच की संख्याओं की श्रेणी के लिए 2 i+1 . तक -1 आउटपुट 2 i . होगा ।
उदाहरण
इनपुट −नंबर=7
आउटपुट - कमी ऑपरेशन के बाद एकल तत्व है:4
स्पष्टीकरण - पहला तत्व स्थिति 1 पर है और इसी तरह।
सरणी होगी [ 1 2 3 4 5 6 7 ]
पहले ऑपरेशन के बाद:[ 2 4 6 ]
दूसरे ऑपरेशन के बाद:[ 4 ]
इनपुट - संख्या=18
आउटपुट - कमी ऑपरेशन के बाद एकल तत्व है:4
स्पष्टीकरण - पहला तत्व स्थिति 1 पर है और इसी तरह।
सरणी होगी [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ]
पहले ऑपरेशन के बाद:[ 2 4 6 8 10 12 14 16 18]
दूसरे ऑपरेशन के बाद:[ 2 8 12 16 ]
तीसरे ऑपरेशन के बाद:[ 8 16 ]
चौथे ऑपरेशन के बाद [ 16 ]
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
इस दृष्टिकोण में हम उपरोक्त सूत्र के आधार पर अंतिम परिणाम की गणना करने के लिए थोड़ी देर के लूप का उपयोग करेंगे। प्रारंभिक मान को 2 के रूप में लें और 2*परिणाम <=इनपुट संख्या तक आगे बढ़ें और प्रत्येक पुनरावृत्ति पर मान को दोगुना करें।
-
इनपुट वेरिएबल नंबर लें
-
फ़ंक्शन getingleElement(long num) इनपुट नंबर लेता है और उपरोक्त सूत्र के आधार पर परिणाम प्रिंट करता है।
-
एक परिवर्तनशील परिणाम लें।
-
2 के साथ परिणाम आरंभ करें।
-
परिणाम तक लूप का उपयोग करके ट्रैवर्स करें*2<=num.
-
वसीयत के अंदर दोहरा परिणाम।
-
जैसे ही लूप समाप्त होता है हमें वांछित मूल्य मिल जाएगा।
-
वापसी परिणाम।
-
परिणाम को मुख्य के अंदर प्रिंट करें।
उदाहरण
#include<bits/stdc++.h> using namespace std; long getsingleElement(long num){ long result; result=2; while(result*2 <= num){ result=result*2; } return result; } int main(){ int Number = 20; cout<<"The single element after reduction operation is : "<<getsingleElement(Number) ; return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा
The single element after reduction operation is : 16