我想写下这个等式:
1+(2/n!)+(3/n!)+...+(n/n!),
但结果总是等于1。 错误的代码在哪里? 我的代码:
Console.Write("Please Enter Your Number: ");
int num = int.Parse(Console.ReadLine());
int fact = 1;
for (int i = num; i > 1; i--)
{
fact *= i;
}
Console.WriteLine("Fact= " + fact);
float result = 1;
for (int i = 2; i >= num; i++)
{
result += (i / fact);
}
Console.WriteLine("Result= " + result);
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
答案 0 :(得分:0)
因为这不循环
for (int i = 2; i >= num; i++)
如果你在调试中追踪它,那将是显而易见的
<=
在implicate cast中,这个(i / fact)
可能在演员阵容之前执行,因此将事实抛向浮动。 (浮点)的事实。
你没有int / decimal
您可以使用decimal而不是float