Giả sử chúng ta có ba giá trị a, b và x. Chúng ta phải tìm một bội số của x, gần nhất với a b . Giả sử các số là x =4, a =3, b =3, thì kết quả đầu ra sẽ là 28, vì giá trị này gần nhất với 3 3 =27
Cách tiếp cận rất đơn giản; chúng ta phải tuân theo các điều kiện này -
-
Nếu b <0 và a =1, thì ab trở thành 1 và do đó, bội số gần nhất của x trở thành 0 hoặc x.
-
Nếu b <0 và a> 1 thì ab sẽ nhỏ hơn 1 và do đó bội số gần nhất của x trở thành 0.
-
Nếu b> 0 thì tìm ab. Sau đó, đặt mul =số nguyên của ab / x, khi đó bội số gần nhất của x là mul * x hoặc (mul + 1) * x
Ví dụ
#include<iostream> #include<cmath> using namespace std; void findMultiple(int a, int b, int x) { cout << "Nearest multiple: "; if (b < 0) { if (a == 1 && x == 1) cout << "1"; else cout << "0"; } int mul = pow(a, b); int ans = mul / x; int ans1 = x * ans; int ans2 = x * (ans + 1); if((mul - ans1) <= (ans2 - mul)){ cout << ans1; } else{ cout << ans2; } } int main() { int a = 3, b = 3, x = 4; findMultiple(a, b, x); }
Đầu ra
Nearest multiple: 28