编辑:粘贴正确的代码这次。。。
我想计算一个数的阶乘。在这个例子中,我输入数字5。
尝试这个方法,会得到一个巨大的负数:
static void Main(string[] args)
{
int consoleInput = int.Parse(Console.ReadLine());
for (int i = 1; i < consoleInput; i++)
{
consoleInput = consoleInput * i;
}
Console.WriteLine(consoleInput);
}
-1899959296
然而:
static void Main(string[] args)
{
int consoleInput = int.Parse(Console.ReadLine());
int result = consoleInput;
for (int i = 1; i < consoleInput; i++)
{
result = result * i;
}
Console.WriteLine(result);
}
输出
120
如果我两次都输入5,第一次输出是-1899959296,第二次输出是120。
有人能解释为什么吗?