所以我的任务是:我有数字 100,我必须打印它的阶乘数字的总和。
所以我编写了代码,找到了一种对数字求和的好方法,但我的代码不适用于数字 100。我检查了 10,它运行良好。我想到的第一步是,我必须将类型从 int 更改为更大的类型。我知道(阶乘的)结果将是一个巨大的正数,所以我选择了 ulong,但它仍然不起作用。我在 Stack Overflow 上查了一下,发现的唯一答案建议使用“BigInteger”,但我的 Visual Studio 似乎不知道,我想知道为什么 ulong 不起作用。
我的代码:
class Program
{
static ulong factorial(ulong n) //finds the factorial of x
{
ulong fact = n;
for (ulong i=1; i<n; i++)
{
fact = fact * i;
}
return fact;
}//***
static ulong digitsum(ulong n) // sums the digits of n
{
ulong sum = 0;
while (n != 0)
{
sum += n % 10;
n /= 10;
}
return sum;
}//***
static void Main(string[] args)
{
ulong x = 100;
Console.WriteLine(digitsum(factorial(x)));
Console.ReadLine();
}
}