我需要使用该系列来近似e:e = 1+ 1/1! +1/2!+ ... + 1 / N! n = 100000这就是我所做的,但它拒绝编译..
v19.0.0
答案 0 :(得分:0)
您的代码有两个问题:
e
定义为double。1.7182818284590455
。之后它不会改变。 它也不是e
,但这是一个单独的问题。如果你真的想得到e的近似值,你还需要添加一个。或者从double e = 1
开始。
答案 1 :(得分:0)
我会使用双打而不是长号来防止任何错误。
绝对没有必要进行100000次迭代。你最多可以在100之后停止。
因为e = 1 + 1 / n!从e = 1开始,或者你将获得1.718。
像这样的阶乘方法会简单得多,而不必自称
public static double factorial(int number)
{
double factorial = 1;
while (number>1)
{
factorial*=number;
number--;
}
return factorial;
}