如何在java中获得9的最接近最高倍数
我需要能计算出9的最接近的最高倍数的东西。例如,如果我在这个函数中输入1,它将返回9,如果我在这个函数中输入10,它将返回18,依此类推 我尝试过这个如何在java中获得9的最接近最高倍数,java,math,Java,Math,我需要能计算出9的最接近的最高倍数的东西。例如,如果我在这个函数中输入1,它将返回9,如果我在这个函数中输入10,它将返回18,依此类推 我尝试过这个9*(Math.round(number/9))和9*(Math.ceil(Math.abs(number/9))但是它们返回的是9的最接近倍数,所以如果你在这个函数中输入10,它将返回9,出于我的目的,它需要返回18。(或许有更好的方式来表达“最接近的最高点”) 如果有人能帮我,那就太好了 你可以使用这个公式 number + (9 - (num
9*(Math.round(number/9))
和9*(Math.ceil(Math.abs(number/9))
但是它们返回的是9的最接近倍数,所以如果你在这个函数中输入10,它将返回9,出于我的目的,它需要返回18。(或许有更好的方式来表达“最接近的最高点”)
如果有人能帮我,那就太好了 你可以使用这个公式
number + (9 - (number % 9))
对于数字为9的倍数的例外情况,请使用以下条件:
int result = number % 9 == 0 ? number : number + (9 - (number % 9));
你可以用这个公式
number + (9 - (number % 9))
对于数字为9的倍数的例外情况,请使用以下条件:
int result = number % 9 == 0 ? number : number + (9 - (number % 9));
您可以尝试定义一个乘数,其值取决于数字是否为9的倍数。检查以下代码:
int number = 10;
Double ceilValue = Math.ceil(number/9);
double multiplier = 0.0;
if (number % 9 == 0) {
multiplier = ceilValue;
} else {
multiplier = ceilValue + 1;
}
Double result = 9 * multiplier;
System.out.println(result);
输出:
18.0
您可以尝试定义一个乘数,其值取决于数字是否是9的倍数。检查以下代码:
int number = 10;
Double ceilValue = Math.ceil(number/9);
double multiplier = 0.0;
if (number % 9 == 0) {
multiplier = ceilValue;
} else {
multiplier = ceilValue + 1;
}
Double result = 9 * multiplier;
System.out.println(result);
输出:18.0
只需添加一个(最多)9次,然后检查它是否是9的倍数,如下所示:
intx=9;
int结果=0;
对于(int i=x;i<9;i++)
{
如果(i%9==0)
{
结果=i;
打破
}
}
//结果将包含“最近的”“最高的”或其自身倍数9
只需添加一(最多)9次,然后检查它是否是9的倍数,如下所示:
intx=9;
int结果=0;
对于(int i=x;i<9;i++)
{
如果(i%9==0)
{
结果=i;
打破
}
}
//结果将包含“最近的”“最高的”或其自身倍数9
9是10中9的最接近倍数。。。9不是比18更接近10吗?不如在Math.ceil
的结果中加1,然后再乘以9。@Sweeper一旦一个数字超过需要的倍数,就返回下一个倍数。如果你输入9,它会返回9,但是一旦你到了10,它会返回18,一旦你到了19,它会返回27,依此类推。我不擅长措辞,如果你不明白,很抱歉。负数呢?-10是输出-9还是-18?@清扫器负数在我的用例中并不重要,我只需要正数。9是10中9的最近倍数。。。9不是比18更接近10吗?不如在Math.ceil
的结果中加1,然后再乘以9。@Sweeper一旦一个数字超过需要的倍数,就返回下一个倍数。如果你输入9,它会返回9,但是一旦你到了10,它会返回18,一旦你到了19,它会返回27,依此类推。我不擅长措辞,如果你不明白,很抱歉。负数呢?-10是输出-9还是-18?@Sweeper负数在我的用例中并不重要,我只需要正数。我已经编辑过,以包括示例输出。此外,检查了不同的输出,似乎给出了正确的结果。抱歉删除了我以前的评论,意识到这是一个打字错误。很抱歉这是可行的,但我会尽量避免使用浮点数学。我相信下面的@hossein-rasekhi解决方案更优雅、更快。我也编辑了一些示例输出。此外,检查了不同的输出,似乎给出了正确的结果。抱歉删除了我以前的评论,意识到这是一个打字错误。很抱歉这是可行的,但我会尽量避免使用浮点数学。我相信下面的@hossein rasekhi解决方案更优雅、更快。这对我来说是最优雅的,当数字已经是9的倍数时,我通过添加边缘大小写进行编辑。这对我来说是最优雅的,当数字已经是9的倍数时,我通过添加边缘大小写进行编辑。