이 문제에서는 두 개의 숫자 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