计算C#中的阶乘 - 代码日志

计算C#中的阶乘

如何使用C#计算大阶乘? Win 7中的Windows计算器在Factorial(3500)中溢出。作为一个编程和数学问题,我有兴趣知道如何在C#中计算更大数量的乘积(20000,可能是)。任何指针?

[编辑]我刚刚在Win 2k3上检查一个calc,因为我可以记得在Win 2k3上做一个更大的阶乘。我对事情解决的方式感到惊讶。

Win2k3上的Calc可以使用大数字。我试过!50000我得到了一个答案,3.3473205095971448369154760940715e 213236
当我做到这一切的时候非常快。

这里的主要问题不仅仅是找出适当的数据类型,还有一点数学。如果我尝试在C#[递归或循环]中编写一个简单的阶乘代码,那么性能真的很差。需要几秒钟才能得到答案。 Windows 2k3(或XP)中的calc如何能够在不到10秒的时间内执行如此巨大的阶乘?在C#中是否有其他方法以编程方式计算因子?

看看BigInteger结构:

http://msdn.microsoft.com/en-us/library/system.numerics.biginteger.aspx

也许这可以帮助你实现这个功能。

CodeProject在http://www.codeproject.com/KB/cs/biginteger.aspx的框架的旧版本上有一个实现。

http://stackoverflow.com/questions/4186357/calculate-factorials-in-c-sharp

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:计算C#中的阶乘