Java模块化部门

时间:2011-10-22 16:11:02

标签: java division modular-arithmetic

我正在做一些错误纠正,我需要在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在技术上不能执行模块化操作,我的一部分认为我要么以某种方式计算逆,要么使用数组来存储可能的输出值。

2 个答案:

答案 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