找到modulo结果的正确方法

时间:2014-04-01 12:39:07

标签: java modulo number-theory

众所周知,modulo operation finds the remainder of division of one number by another

我正在努力找出获得模数值的正确方法。

a mod b = c

如果a> = 0,则很容易找到c但是,如果a< 0,这让我很困惑。

有一天,我在讲师笔记中读到-75 mod 26 = 3。

然后,我在java中创建一个简单的程序来查找-75 mod 26的结果。程序编译并打印结果:-23。

那么,如果a<<< 0?

Belows是我尝试过的代码:

public class modulo {
    public static void main(String [] args){
        int divide = -75;  

        int val = divide % 26; 

        System.out.println(divide+" % 26 = "+ val);

    }
}

1 个答案:

答案 0 :(得分:0)

为什么你不能在分裂前从两者中获得绝对价值?

public class modulo {
    public static void main(String [] args){
        int divide = -75;  
        int val = Math.abs(divide) % Math.abs(26); 
        System.out.println(divide+" % 26 = "+ val);
    }
}

...或者只是从结果中获得abs值(使用舍入)?

Math.round( result );