Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm bội số của x gần nhất với a ^ b trong C ++

Giả sử chúng ta có ba số nguyên a, b và x. Nhiệm vụ là lấy bội số của x, gần nhất với ab. Vì vậy, nếu a =5, b =4 và x =3, thì đầu ra sẽ là 624. Vì 54 =625 và 624 là bội số của 3, gần nhất với 625.

Nhiệm vụ rất đơn giản. chúng tôi phải làm theo các bước sau để giải quyết vấn đề này -

  • tính toán num:=a b
  • Sau đó tìm f:=tầng của (num / x)
  • Bây giờ phần tử gần nhất ở bên trái sẽ là cl =x * f và ở bên phải sẽ là cr =x * (f + 1)
  • Cuối cùng, số gần nhất trong số chúng sẽ là min (num - cl, cr - num)

Ví dụ

#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);
}

Đầu ra

Find closest element: 624