快速检查一个数字是否能被另一个数字整除的方法是什么?

8

我想知道在VB.NET中检查可除性的最快方法是什么。

我尝试了以下两个函数,但感觉还有更有效率的技巧。

Function isDivisible(x As Integer, d As Integer) As Boolean
     Return Math.floor(x / d) = x / d
End Function

我想到了另一个方案:

Function isDivisible(x As Integer, d As Integer) As Boolean
     Dim v = x / d
     Dim w As Integer = v
     Return v = w
End Function

这是一种更实用的方式吗?


只要第二个程序能够正常工作,它看起来相当高效,并且应该足以让JIT自动内联它。 - Nick
3个回答

36

使用 Mod

Function isDivisible(x As Integer, d As Integer) As Boolean
    Return (x Mod d) = 0
End Function

8
使用“Mod”运算符,它返回number1除以number2的余数。如果余数为零,则number1可以被number2整除。
例如:
Dim result As Integer = 10 Mod 5 ' result = 0

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接