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