猿问

java中如何获取最接近的9的最大倍数

我需要一些可以计算 9 的最接近的最大倍数的东西。例如,如果我在这个函数中输入 1,它将返回 9,如果我在这个函数中输入 10,它将返回 18,依此类推。

我已经尝试过这个9*(Math.round(number/9))9*(Math.ceil(Math.abs(number/9)))但它们返回最接近的 9 的倍数,因此,如果您在该函数中输入 10,它将返回 9,出于我的目的,它将需要返回 18。(可能有更好的方法来表达这一点,然后“最近的最高值”)

如果有人能帮助我那就太好了!


凤凰求蛊
浏览 134回答 3
3回答

Cats萌萌

您可以使用这个公式。number + (9 - (number % 9))对于数字是 9 的倍数的特殊情况,请使用条件:int result = number % 9 == 0 ? number : number + (9 - (number % 9));

qq_花开花谢_0

只需添加 1(最多)9 次,然后检查它是否是 9 的倍数,如下所示:int x = 9;int result = 0;for (int i = x; i < 9; i++){&nbsp; &nbsp; if (i % 9 == 0)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; result = i;&nbsp; &nbsp; &nbsp; &nbsp; break;&nbsp; &nbsp; }}// result will contains the 'nearest' 'highest' or it self multiple of 9&nbsp;

隔江千里

您可以尝试定义一个乘数,其值取决于 number 是否是 9 的倍数。检查下面的代码:int number = 10;Double ceilValue = Math.ceil(number/9);double multiplier = 0.0;if (number % 9 == 0) {&nbsp; &nbsp; multiplier = ceilValue;} else {&nbsp; &nbsp; multiplier = ceilValue + 1;}Double result = 9 * multiplier;System.out.println(result);输出:18.0
随时随地看视频慕课网APP

相关分类

Java
我要回答