세 개의 정수, b, x가 있다고 가정합니다. 작업은 ab에 가장 가까운 x의 배수를 구하는 것입니다. 따라서 a =5, b =4 및 x =3이면 출력은 624가 됩니다. 54 =625이고 624는 625에 가장 가까운 3의 배수이기 때문입니다.
작업은 간단합니다. 이 문제를 해결하려면 다음 단계를 따라야 합니다 -
- 숫자 계산 :=a b
- 그런 다음 f :=(num/x)의 바닥 을 찾습니다.
- 이제 왼쪽에서 가장 가까운 요소는 cl =x * f가 되고 오른쪽은 cr =x * (f + 1)가 됩니다.
- 마지막으로 가장 가까운 숫자는 min(num – cl, cr – num)입니다.
예시
#include <iostream> #include <cmath> using namespace std; long long getClosest(int a, int b, int x) { long long num = pow(a, b); int f = floor(num / x); long long cl = x * f; long long cr = x * (f + 1); if ((num - cl) < (cr - num)) return cl; else return cr; } int main() { int a = 5, b = 4, x = 3; cout << "Find closest element: " << getClosest(a, b, x); }
출력
Find closest element: 624