在 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 次檢視

開啟你的 職業生涯

完成該課程可獲得認證

開始
廣告