c#中的数据类型用于查找阶乘

时间:2016-01-31 17:57:42

标签: c# types

c#中最大的数据类型是什么,或者我应该使用哪种数据类型来查找1619的阶乘。我尝试了ulong和uint64但是他们修改了我的答案。

1 个答案:

答案 0 :(得分:1)

看这个https://msdn.microsoft.com/en-us/library/system.numerics.biginteger%28v=vs.110%29.aspx

BigInteger不是很快,但可以计算大数字

此处以及来自MSDN的简单示例

string positiveString = "91389681247993671255432112000000";
string negativeString = "-90315837410896312071002088037140000";
BigInteger posBigInt = 0;
BigInteger negBigInt = 0;

    try 
    {
         posBigInt = BigInteger.Parse(positiveString);
         Console.WriteLine(posBigInt);
    }
    catch (FormatException)
    {
         Console.WriteLine("Unable to convert the string '{0}' to a BigInteger value.", positiveString);
    }

我尝试了自己的例子并正在运作

string positiveString = "91389681247993671255432112000000";
string negativeString = "-90315837410896312071002088037140000";
BigInteger b = BigInteger.Parse(positiveString);
BigInteger c = BigInteger.Parse(positiveString);
BigInteger d = b * c;

System.Console.WriteLine(d);
System.Console.ReadLine();

// result 835207383860988607360648144841987935757186784078054400000000000