Java 计算一个数的最大余数
我试图计算一个数的最大余数,并找出哪个数除以原始数得到最大余数。这是我目前的代码,我很确定它是有效的。我只是想快点。有什么建议吗Java 计算一个数的最大余数,java,performance,modulo,Java,Performance,Modulo,我试图计算一个数的最大余数,并找出哪个数除以原始数得到最大余数。这是我目前的代码,我很确定它是有效的。我只是想快点。有什么建议吗 int c=Integer.parseInt(br.readLine()); if(c==2) pw.println(2); else if(c%2==0) { pw.println(c-1); } else
int c=Integer.parseInt(br.readLine());
if(c==2)
pw.println(2);
else if(c%2==0)
{
pw.println(c-1);
}
else
{
max=0;
int numDivided=0;
for(int z=1; z<c; z+=2)
{
if(c%z>max)
{
numDivided=z;
max=c%z;
}
}
pw.println(numDivided);
最大余数应该小于输入数的一半。 所以你应该使用这个公式,其中c是输入整数:
int largestRemainder = c % ((c/2) + 1);
对于偶数,例如c=24,它给出最大余数=11
对于奇数,例如c=33,它给出最大余数=16
这些结果实际上是正确的。最大余数应该小于输入数的一半。 所以你应该使用这个公式,其中c是输入整数:
int largestRemainder = c % ((c/2) + 1);
对于偶数,例如c=24,它给出最大余数=11
对于奇数,例如c=33,它给出最大余数=16
这些结果实际上是正确的。对于所有的c>0,c%c+1==c,如果我不理解这个问题,或者问题中的代码不正确,你就不能比它大。考虑8的情况。代码返回7,其中只有余数1。@PatriciaShanahan是的,目标是打印出产生最大余数的最大数字,这就是所有c>0,c%c+1==c的结果,如果我不理解这个问题,或者问题中的代码不正确,则不能再大。考虑8的情况。代码返回7,其中只有余数1。@PatriciaShanahan是的,目标是打印出产生最大余数的最大数字,这就是素数的作用。然而,最大余数本身就是。@fge我想你还没有完全理解OP的问题。请再读一遍。然而,对于素数,最大余数就是它本身。@fge我想你还没有完全理解OP的问题。请再读一遍。