Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 求和以确定1000下5的最大倍数_Java_Math_Equation - Fatal编程技术网

Java 求和以确定1000下5的最大倍数

Java 求和以确定1000下5的最大倍数,java,math,equation,Java,Math,Equation,我目前正试图让一个特性在我正在制作的Java应用程序中工作,但是我不确定如何在一行中实现它 我知道我可以做一些事情(不完全是,但大致是): 我不会专门将其用于最高倍数(1000分之5)的情况,但是根据我自己的研究,我无法找到适用于此特定情况的理想解决方案,因此这是一个示例 我之前发现的所有例子,一般来说,都与只找到最高倍数有关,而不是将最高倍数和限制放在一起 如果这不是你头脑中的知识,那么理解你提出解决方案背后的逻辑也会有很大的帮助,这可以避免我在将来遇到类似的问题 谢谢,试试: int num

我目前正试图让一个特性在我正在制作的Java应用程序中工作,但是我不确定如何在一行中实现它

我知道我可以做一些事情(不完全是,但大致是):

我不会专门将其用于最高倍数(1000分之5)的情况,但是根据我自己的研究,我无法找到适用于此特定情况的理想解决方案,因此这是一个示例

我之前发现的所有例子,一般来说,都与只找到最高倍数有关,而不是将最高倍数和限制放在一起

如果这不是你头脑中的知识,那么理解你提出解决方案背后的逻辑也会有很大的帮助,这可以避免我在将来遇到类似的问题

谢谢,

试试:

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