n * 3.5의 결과를 얻으려면 (n * 2) + n + (n / 2)를 계산해야 합니다. . 비트를 1만큼 왼쪽으로 이동하면 n * 2가 됩니다. 비트를 오른쪽으로 이동하려면 n / 2 . 결과를 얻으려면 추가하십시오.
n * 3.5 =(n * 2) + n + (n / 2)
위의 방정식을 확인하기 위해 다른 n 값을 제출할 수 있습니다. 몇 가지 예를 살펴보겠습니다.
입력
2 7 10
출력
7 24 35
알고리즘
- 숫자 n을 초기화합니다.
- 왼쪽 시프트 비트 연산자를 사용하여 n * 2 찾기
- 오른쪽 시프트 비트 연산자를 사용하여 n/2를 찾습니다.
- 결과를 얻으려면 위의 두 값을 n과 함께 추가하세요.
- 결과를 반환합니다.
위 단계의 간단한 문제입니다.
구현
다음은 위의 알고리즘을 C++로 구현한 것입니다.
#include <bits/stdc++.h> using namespace std; int getTheResult(int x) { return (x << 1) + x + (x >> 1); } int main() { int n = 10; cout << getTheResult(n) << endl; return 0; }
출력
위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
35