我在Java中做了一些错误纠正,并且简短地说了很长一段时间;
在mod 11下:
-4 mod 11 = 7
我已经通过使用谷歌的计算器和几个在线模数计算器证实了这一点,但我不能为我的生活找到如何用Java实现它。
我在想我需要使用一个倒数表来找到正确的数字,但我似乎要围成一圈。
任何意见都会受到赞赏。
提前感谢
贝
答案 0 :(得分:6)
以下内容将为任何整数n mod 11
计算n
:
(n % 11 + 11) % 11
n % 11
的结果位于-10
... 10
范围内。如果后者为负数,则后续添加和第二个模运算会将11
添加到n % 11
。
此公式适用于任何基础:只需将11
替换为另一个正整数。
答案 1 :(得分:3)
只需编写一个可以满足您需要的mod函数就可以了。示例here:
private int mod(int x, int y)
{
int result = x % y;
if (result < 0)
{
result += y;
}
return result;
}
它比使用% 11 + 11) % 11
更清晰,当您查看它时,操作立即有意义。 mod(32, 11)
更明确32 mod 11
而不是(32 % 11 + 11) % 11
,并且可以节省额外的%
操作。
答案 2 :(得分:1)
答案 3 :(得分:0)
我认为如果你采用正模(4 mod 11)并从后一个值中减去它,它应该每次都给你正确的答案。 (即11 - (4 mod 11)= 7)我还没有真正经历过测试,但似乎有道理。
答案 4 :(得分:0)
尝试使用BigInteger#mod。