总和确定5以下的最大倍数为1,000

时间:2014-09-10 11:53:08

标签: java math equation

我目前正在尝试在我正在制作的Java应用程序中使用一个功能,但是我不确定如何在一行中实现它。

我知道我可以做一些事情(不是完全,但粗略地说):

while(i<995){
i=i+5
}

但是我渴望将这一切全部实现到一行中,例如在一个

static int highestMult = *the equation*

我不会将此专门用于千分之五的最高倍数,但是根据我自己的研究,我找不到针对这个特定情况的理想解决方案,因此这是一个例子。

我以前发现的所有示例通常都只涉及找到最高倍数,而不是将最高倍数和限制放在一起。

如果这不是你脑子里的知识,那么了解你如何提出解决方案背后的逻辑也是一个很好的帮助,它可以帮助我在将来遇到类似的问题。

谢谢,

2 个答案:

答案 0 :(得分:5)

如果c 号下的(在您的情况下为1000),而m是多个(在您的情况下为5),那么

((c - 1) / m) * m

是一种方式。 (纯粹主义者注意:你实际上并不需要外括号,但为了清楚起见我将它们包括在内)。

我在这里利用整数算术强制将((c - 1) / m)截断为地板整数。将此结果乘以m表示最终值是m的倍数。确保cm是整数类型,否则这将不起作用(除非你明确地转换为不优雅)。

c < 1m < 1

未定义

答案 1 :(得分:4)

尝试:

int number=5;
int limit=999;
int i=limit-(limit%number);

其中999是limit - 1

%是提醒

(999%5)=4

如果我们从限制中删除提醒,我们会得到它:

 999-4=995

我们可以使用limit=1000,但结果也可能是1000

提醒对编程非常有用:D

number > 0limit >=0

定义