假设我们有三个整数,a,b和x。任务是获得x的倍数,最接近ab。因此,如果a = 5,b = 4且x = 3,则输出将为624。由于54 = 625,并且624是3的倍数,最接近625。
任务很简单。我们必须按照以下步骤来解决这个问题-
计算num:= 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