最接近的可整除整数
例。
int a = 254;
int b = 25;
int c = (closest integer to `a` that is divisible by `b`)
如何找到整数?该示例的结果是 。c
c = 250
例。
int a = 254;
int b = 25;
int c = (closest integer to `a` that is divisible by `b`)
如何找到整数?该示例的结果是 。c
c = 250
有两种情况需要考虑:
小于或等于 的最接近的整数:a
int c1 = a - (a % b);
大于 的最接近的整数:a
int c2 = (a + b) - (a % b);
然后,我们需要检查哪个更接近并返回:a
int c;
if (a - c1 > c2 - a) {
c = c2;
} else {
c = c1;
}
因此,我们可以创建一个这样的方法:closestInteger()
static int closestInteger(int a, int b) {
int c1 = a - (a % b);
int c2 = (a + b) - (a % b);
if (a - c1 > c2 - a) {
return c2;
} else {
return c1;
}
}
例:
System.out.println(closestInteger(254, 25));
System.out.println(closestInteger(9, 5));
输出:
250
10
您必须在 的两侧进行检查。因此,我们将 'c1' 设置为 低于(或等于)的最接近的整数,并成为其上方最接近的整数。然后比较差异。如果 更接近 ,则设置为 ,否则 。a
a
c2
c1
a
c
c1
c2
int c1 = a - (a % b);
int c2 = c1 + b;
int c = a - c1 < c2 - a ? c1 : c2;