java中%(模数)和/(除)之间的差异?

时间:2017-01-09 16:44:25

标签: java math

昨天我面试了一次,在那次采访中他们问了我一个问题,比如告诉我%和/?之间的区别 我知道结果他们给了什么,但我能从理论上解释一下你能不能给我任何身体我怎么能在理论上解释它,我也做了一个关于这个的程序

class FindDifference 
{
    public static void main(String[] args) 
    {
        int num1=12;
        int num2=3;
        int modulus=num1%num2;
        int divide=num1/num2;
        System.out.println("modulus :"+modulus);
        System.out.println("division :"+divide);
    }
}

我的结果是:

modulus :0    
division :4    

但我怎么能在他们之间给出理论上的解释。请你帮助我

1 个答案:

答案 0 :(得分:4)

百分比符号是模数运算符。我会说他们希望你认识到整数输入上的除法运算符给出整数结果的区别。模数运算符给出了余数,即原始值从整数算术中恢复为

(num1/num2)*num2 + num1%num2 == num1

这是理论上的解释。

一个例子(使用python方便输入)给出了

>>> -21 %4
3
>>> -21 /4
-6
>>> -6*4 +3
-21

上面的Java程序会给你。 (我在这台机器上没有Java编译器。)

class FindDifference 
{
    public static void main(String[] args) 
    {
        int num1 = 10;
        int num2 = 3;
        int percentage = num1%num2;
        int divide = num1/num2;
        int resume = divide*num2 + percentage
        System.out.println("Percent :"+percentage);
        System.out.println("division :"+divide);
        System.out.println("resume :"+resume);
    }
}