Cho hai số A, B. Nhiệm vụ: tính trung bình cộng không dùng phép chia.
Ví dụ:
Đầu vào: A = 34, B = 54
Đầu ra: 44
Phương pháp:
Thay (A+B)/2 bằng dịch bit phải: (A+B) >> 1. Dịch phải 1 bit tương đương chia 2 cho số nguyên.
Chương trình minh họa
Ví dụ
#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;
}
Kết quả
The average of the number is 388