我最近在编程时偶然发现了这个问题。我想知道这是如何可能的,因为模数会返回欧几里德分区a / b的其余部分。这是不是意味着它必须返回3因为返回0意味着你必须执行0除法,这是不可能的?另外,这是如何在其他编程语言中处理的?我知道modulo在不同的语言中有不同的实现,但这是一个可变的方面还是由一些数学陈述设置?
答案 0 :(得分:17)
这不意味着它必须返回3,因为返回0意味着你必须执行除法0
没有。你没有将3除以0,你将0除以3,这当然会产生0的模数。
答案 1 :(得分:7)
如果a % b
是a / b
的剩余部分,则0 % 3
必须是0 / 3
的剩余部分。自0 / 3 = 0
以来,没有余数。没有除零。