【问题标题】:Please explain why 17 % 40 = 17请解释为什么 17 % 40 = 17
【发布时间】:2013-01-06 13:07:57
【问题描述】:

我是 Java 新手,实际上是一般的编程。我知道模运算符 (%) 返回两个数字的余数,但是,我不明白为什么 17 % 40 = 17。

我知道 40 % 17 = 6、17 % 5 = 2 和 40 % 5 = 0。我知道作为余数返回的值的要点。但是 17 % 40 = 17 让我很难过。

我能想到的唯一合理化是,由于余数小于 1,所以返回总值 17,为什么不是 0?请帮我解释一下这个谜。

【问题讨论】:

  • 余数小于一是什么意思?商小于一。您是否将余数与商混淆了?
  • 基本上,这是整数的数学(欧几里得)除法。它与计算器为你做的不同,计算分数。 17 不能除以 40(实际上除以 17),所以余数就是数字本身。因此,如果除数大于被除数,模运算符将返回数字本身。 (如果我的英语数学术语不正确,请原谅我,用不同的语言学习数学;))
  • 尝试 17%18 , 17%19 , 17%20 .... 17%100 ... 17%200 .... 17%N (其中 N > 17) 你将得到答案为 17。

标签: java operators modulus


【解决方案1】:

除以 17/40 时, 为 0,余数 为 17。

模运算符 (%) 返回余数

a % b = remainder of a / b

【讨论】:

    【解决方案2】:

    Java 有一个您可能不熟悉的重要算术运算符,%,也称为模数或余数运算符。 % 运算符返回两个数字的余数。例如 10 % 3 为 1,因为 10 除以 3 余数为 1。

    所以在您的情况下,17/40 将留下余数 17,因此结果为 17。

    和Like一样。

    1%10 = 1
    

    【讨论】:

    • 如果你引用一些东西,你也应该包括一个链接。
    【解决方案3】:

    来自Wiki Knuth 的方程:

    a = 17
    n = 40
    floor(a/n) = 0
    so r = 17
    

    n > ar 就是a

    【讨论】:

    • 小心。这些方程式可能会让他的脑袋爆炸:-)
    【解决方案4】:

    我想学习第三和第四标准数学是关键。

    如果你看到(希望理解除法语法。它是流行的第三种标准方式)

      ____
    40)17
    

    您将收到 17 的提醒,因为 17 不能被 40 整除。 然后会有一个“。”的补充。然后将分数相加

    【讨论】:

    • 请在投反对票前说明理由
    【解决方案5】:

    如果你有数字 ab,它们的商 q 和余数 r,那么以下必须是真的:

    q · b + r = a

    也就是说,如果将商 (q) 乘以除数 (b) 并加上余数 (r),则结果是被除数 (a)。

    在你的情况下 a = 17, b = 40, q = 0 所以 r 必须是17

    注意:上面的等式只是Nikolay Kuznetsov's answer的等式的重新排列,但我认为这样更容易理解。

    【讨论】:

      【解决方案6】:

      也许这是一种不同的、更有帮助的思考方式。

      当我们对整数 ab 应用除法时,我们实际上是在尝试像这样关联 ab

      a = Q * b + R
      

      ab 的倍数,加上一些剩余部分。 QR 是整数;为了简单起见,我们也只考虑非负数。倍数 Q 是商,余数 R 是余数——使这种关系起作用的最小的数。

      在大多数语言中,a / b 给你Q,而a % b 给你R。 (事实上​​,处理器倾向于同时计算两者——它们是如此相关。)

      所以如果a 是 17 而b 是 40,那么它只有在你写的时候才有效:

      17 = 0 * 40 + 17
      

      这就是为什么a % b 必须是 17。

      (请注意,在考虑负数时它会变得更加复杂。)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-31
        • 2019-03-28
        • 2014-06-10
        • 1970-01-01
        • 2019-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多