इस समस्या में, हमें दो संख्याएँ A और B दी जाती हैं। हमारा कार्य बिना विभाजन के दो संख्याओं के तेज़ औसत की गणना करने के लिए एक प्रोग्राम बनाना है।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट: ए =34 बी =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