Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

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