用 C++ 找出最接近 ab 的 x 倍数


假设我们有三个整数,a、b 和 x。任务是获取最接近 ab 的 x 倍数。因此,如果 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

更新于:18-12-2019

97 次浏览

提升您的 职业生涯

通过完成本课程获得认证

开始学习
广告