溢出异常?
我有以下代码来查找阶乘:
Private Shared Function Factorial(ByVal Number As Long) As Long
If Number = 0 Then
Return 1
Else
Return Number * Factorial(Number - 1)
End If
End Function
它通常会导致溢出。它只适用于我从像4这样小的东西开始。
我必须使用30-60这样的起始数字。
有任何想法吗?我认为将值类型更改为LONG可以防止出现此问题。
这是VB.net仅供参考。
没有找到相关结果
已邀请:
3 个回复
很缴
的最大数量约为9×10 ^ 18。因子(30)约为2.7×10 ^ 32。 如果您使用的是.Net 4,则可以使用内置的
类,它可以容纳任意大的数字。 如果您不使用.Net 4,则需要查找并下载BigInteger库,例如intx。
董碘奴星
你会得到这样的结果: 您可以在我的博客文章中找到完整的源代码:VB.NET中的Factorial和Fibonacci
蜂佬渺