इस समस्या में, हमें दो संख्याएं A और B दी गई हैं। हमारा कार्य विभाजन के बिना दो संख्याओं का फास्ट औसत की गणना करने के लिए एक प्रोग्राम बनाना है।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट: A = 34 B = 54
आउटपुट: 44
समाधान दृष्टिकोण:
आमतौर पर, औसत की गणना दो संख्याओं को जोड़कर और फिर इसे 2 से विभाजित करके की जाती है। इसके लिए विभाजन की आवश्यकता होती है लेकिन हमें विभाजन ऑपरेटर का उपयोग किए बिना औसत ढूंढना है। यह राइट शिफ्ट ऑपरेटर >> का उपयोग करके किया जा सकता है और विभाजन ऑपरेटर के बजाय बाइनरी विस्तार को शिफ्ट किया जा सकता है।
हमारे समाधान की कार्यप्रणाली को दर्शाने वाला प्रोग्राम,
उदाहरण
#include <iostream>
#include <stdio.h>
using namespace std;
int calcAvgWODiv(int A, int B) {
int average = (A + B) >> 1;
return average;
}
int main() {
int A = 123 , B = 653;
cout<<"The average of the number is "<<calcAvgWODiv(A, B);
return 0;
}
आउटपुट
The average of the number is 388