Java 求和以确定1000下5的最大倍数
我目前正试图让一个特性在我正在制作的Java应用程序中工作,但是我不确定如何在一行中实现它 我知道我可以做一些事情(不完全是,但大致是): 我不会专门将其用于最高倍数(1000分之5)的情况,但是根据我自己的研究,我无法找到适用于此特定情况的理想解决方案,因此这是一个示例 我之前发现的所有例子,一般来说,都与只找到最高倍数有关,而不是将最高倍数和限制放在一起 如果这不是你头脑中的知识,那么理解你提出解决方案背后的逻辑也会有很大的帮助,这可以避免我在将来遇到类似的问题 谢谢,试试:Java 求和以确定1000下5的最大倍数,java,math,equation,Java,Math,Equation,我目前正试图让一个特性在我正在制作的Java应用程序中工作,但是我不确定如何在一行中实现它 我知道我可以做一些事情(不完全是,但大致是): 我不会专门将其用于最高倍数(1000分之5)的情况,但是根据我自己的研究,我无法找到适用于此特定情况的理想解决方案,因此这是一个示例 我之前发现的所有例子,一般来说,都与只找到最高倍数有关,而不是将最高倍数和限制放在一起 如果这不是你头脑中的知识,那么理解你提出解决方案背后的逻辑也会有很大的帮助,这可以避免我在将来遇到类似的问题 谢谢,试试: int num
int number=5;
int limit=999;
int i=limit-(limit%number);
其中999是限制-1
%是提醒
(999%5)=4
如果我们从限额中删除提醒,我们将获得:
999-4=995
我们可以使用limit=1000
,但结果也可以是1000
提醒对于编程来说是非常有用的:D
定义为number>0
和limit>=0
如果c
是次数(在您的情况下为1000),而m
是倍数(在您的情况下为5),则
((c-1)/m)*m
这是一种方法。(纯粹主义者注意:实际上不需要外括号,但为了清晰起见,我将它们包括在内)
在这里,我利用整数算法强制将((c-1)/m)
截断为整数。将该结果乘以m
意味着最终值是m
的倍数。确保c
和m
是整型的,否则这将不起作用(除非您显式地强制转换,而不是优雅的)
这是未定义的
c<1
和m<1
+1与我的方法相比,我在许多方面更喜欢这种方法,因为它不太易被利用,而且可能更容易遵循。+1这是一种计算速度更快的方法:D,计算余数花费了很长时间(如此长的时间我指的是微秒:D),但是如果你想多次这样做,你也许能看到不同的地方
(999%5)=4
999-4=995