我正在做一些错误纠正,我需要在Java中的mod 11下划分两位数。
现在我知道,使用模块化计算器:
9/1 mod 11 = 9
2/10 mod 11 = 9
问题出在让Java计算这个问题上。在Java中:
(9 / 1) % 11 = 9 - This is fine
(2 / 10) % 11 = 0 - This is not correct.
我知道Java在技术上不能执行模块化操作,我的一部分认为我要么以某种方式计算逆,要么使用数组来存储可能的输出值。
答案 0 :(得分:4)
答案 1 :(得分:1)
不确定这是否符合您的意图,但是......
public static int divmod(int dividend, int divisor, int mod) {
if (dividend >= divisor)
return (dividend / divisor) % mod;
return mod - dividend;
}
测试它:
divmod(9, 1, 11) // returns 9
divmod(2, 10, 11) // returns 9