我目前正在尝试在我正在制作的Java应用程序中使用一个功能,但是我不确定如何在一行中实现它。
我知道我可以做一些事情(不是完全,但粗略地说):
while(i<995){
i=i+5
}
但是我渴望将这一切全部实现到一行中,例如在一个
中static int highestMult = *the equation*
我不会将此专门用于千分之五的最高倍数,但是根据我自己的研究,我找不到针对这个特定情况的理想解决方案,因此这是一个例子。
我以前发现的所有示例通常都只涉及找到最高倍数,而不是将最高倍数和限制放在一起。
如果这不是你脑子里的知识,那么了解你如何提出解决方案背后的逻辑也是一个很好的帮助,它可以帮助我在将来遇到类似的问题。
谢谢,
答案 0 :(得分:5)
如果c
是 号下的(在您的情况下为1000),而m
是多个(在您的情况下为5),那么
((c - 1) / m) * m
是一种方式。 (纯粹主义者注意:你实际上并不需要外括号,但为了清楚起见我将它们包括在内)。
我在这里利用整数算术强制将((c - 1) / m)
截断为地板整数。将此结果乘以m
表示最终值是m
的倍数。确保c
和m
是整数类型,否则这将不起作用(除非你明确地转换为不优雅)。
c < 1
和m < 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 > 0
和limit >=0