इस समस्या में, हमें आकार n की एक सरणी arr[] दी गई है जिसमें धनात्मक मान हैं। हमारा कार्य रिलेशनल ऑपरेटर्स का उपयोग किए बिना सरणी में अधिकतम मान ढूंढना है।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट: arr[] = {5, 1, 6, 7, 8, 2}
आउटपुट: 8
समाधान दृष्टिकोण
चूंकि हमें लॉजिकल ऑपरेटर्स का उपयोग किए बिना मानों की तुलना करनी है। इसके लिए हमें बार-बार घटाव करना होगा, जो संख्या अधिक समय तक चलेगी वह बड़ी होगी।
हम सभी मानों को एक-एक करके तब तक घटाएंगे जब तक वे शून्य न हो जाएं। हम सरणी के पहले दो मानों से शुरू करेंगे और उनमें से बड़े को ढूंढेंगे। फिर हमें सरणी के बाकी मानों की तुलना सरणी के सबसे बड़े तत्व से करनी होगी। इस तरह हम सभी तत्वों में से अधिकतम ढूंढेंगे।
हमारे समाधान की कार्यप्रणाली को दर्शाने वाला प्रोग्राम,
उदाहरण
#include <iostream>
using namespace std;
int returnMax(int x, int y) {
int c = 0;
while(x || y) {
if(x) x--;
if(y) y--;
c++;
}
return c;
}
int findMaxEle(int A[], int N) {
int maxVal = A[0];
for (int i = N-1; i; i--)
maxVal = returnMax(maxVal, A[i]);
return maxVal;
}
int main() {
int A[] = {5, 1, 6, 7, 8, 2};
int N = sizeof(A) / sizeof(A[0]);
cout << "The maximum element of the array is " << findMaxEle(A, N);
return 0;
}
आउटपुट
The maximum element of the array is 8