我是Java的新手,实际上是编程。我知道模数运算符(%)返回两个数字的余数,但是,我不明白为什么17%40 = 17。
据我所知,40%17 = 6,17%5 = 2,40%5 = 0.我得到了剩下的返回值的要点。但是17%40 = 17让我感到难过。
我可以设计的唯一合理化是,由于余数小于1,所以返回总值17,为什么不是0?请帮我解释这个谜。
答案 0 :(得分:15)
当你除17/40时,商为0而余数为17。
模运算符(%
)返回余数。
即
a % b = remainder of a / b
答案 1 :(得分:2)
Java有一个您可能不熟悉的重要算术运算符%,也称为模数或余数运算符。 %运算符返回两个数字的余数。例如,10%3是1,因为10除以3留下余数为1。
所以在你的情况下17/40
会留下余数17,所以结果是17。
和Like一样。
1%10 = 1
答案 2 :(得分:1)
答案 3 :(得分:1)
我想学习第3和第4标准数学是关键点。
如果你看到(希望理解除法语法。它是流行的第三种方式)
____
40)17
你将收到提醒17,因为17不能被40整除。 然后会有一个'。'的加分。然后将添加分数
答案 4 :(得分:1)
如果你有数字 a 和 b ,他们的商 q 和余数 r ,那么以下必须是真的:
q · b + r = a
也就是说,如果将商( q )乘以除数( b )并添加余数( r ),结果是红利( a )。
在您的情况下 a = 17, b = 40, q = 0,因此 r 必须是 17 。
注意:上面的等式只是Nikolay Kuznetsov's answer中等式的重新排列,但我认为这样更容易理解。
答案 5 :(得分:0)
也许这是一种不同的,更有帮助的思考方式。
当我们将除法应用于整数a
和b
时,我们确实试图将a
和b
关联起来:
a = Q * b + R
a
是b
的倍数,加上一些剩余的。 Q
和R
是整数;为了保持这个简单,我们也只考虑非负数。多个Q
是商和剩余的R
,是余数 - 使这种关系起作用的最小值。
在大多数语言中,a / b
为您提供Q
,a % b
为您提供R
。 (实际上处理器倾向于同时计算两者 - 这些都是如此相关。)
因此,如果a
为17且b
为40,则只有在您写下时才有效:
17 = 0 * 40 + 17
这就是a % b
必须为17的原因。
(请注意,在考虑负数时会变得更复杂。)