<分区>
我正在尝试设计一个函数 int smallestDivisibleAfter(int number, int divisor)
以便它返回大于或等于 number
的可整除的最小数字通过 divisor
(非零)。这里假设所有输入和输出都是非负的。
例子:
smallestDivisibleAfter(9,4); // Returns 12
smallestDivisibleAfter(16,2); // Returns 16
我想到了代码 number + divisor - number % divisor
。然而,当 number % divisor == 0
时,这将停止工作,从那时起 smallestDivisibleAfter(16,2);//返回 18
而不是 16
。
此外,number - 1 + divisor - (number - 1)% divisor
不起作用,因为 int
将被替换为 unsigned long long
当我将这段代码付诸行动时。
这里最好的解决方案是什么?