【发布时间】:2017-10-25 17:28:53
【问题描述】:
我想写下这个等式:
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();
【问题讨论】:
-
您使用
(float) x将x转换为float。 -
请记住,在 C#(以及 C 和 Java 以及其他几种语言)中:
int / int -> int。即操作数决定了除法运算方式。 -
问题不是“如何”,而是在哪里。 “在哪里”是“在你用它做任何应该是浮点数学的数学之前”。
-
我测试过但不正确!
-
是的,我犯了一个错误。