এই সমস্যায়, আমাদের দুটি সংখ্যা A এবং B দেওয়া হয়েছে। আমাদের কাজ হলো ডিভিশন ছাড়া দুটি সংখ্যার ফাস্ট গড় বের করার প্রোগ্রাম তৈরি করা।
উদাহরণ দিয়ে সমস্যাটি বোঝা যাক
ইনপুট: A = 34 B = 54
আউটপুট: 44
সমাধানের পদ্ধতি
সাধারণত গড় বের করতে দুটি সংখ্যা যোগ করে ২ দিয়ে ভাগ করা হয়। এতে ডিভিশন লাগে কিন্তু আমাদের ডিভিশন অপারেটর ছাড়া গড় বের করতে হবে। এটি করা যায় রাইট শিফট অপারেটর >> ব্যবহার করে বাইনারি এক্সপ্যানশন শিফট করে ডিভিশন অপারেটর ছাড়া।
সমাধানটি ব্যাখ্যা করে প্রোগ্রাম
#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