在C ++中快速对两个数求平均而不除
在这个问题中,我们给了两个数字A和B。我们的任务是创建一个程序来计算两个数字的快速平均值而不进行除法。
让我们举个例子来了解这个问题,
输入: A=34B=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<<"该数字的平均值是 "<<calcAvgWODiv(A, B); return 0; }
输出-
该数字的平均值是 388