在 C++ 中快速计算两个数的平均值,无需除法


本题中,给出两个数 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

更新于:2021 年 1 月 22 日

345 次查看

开启你的 职业生涯

完成该课程可获得认证

开始
广告