我有点难过。我正在处理一个需要你通过一系列30次迭代找到e ^ x的作业问题:1 + x + x^2/2! ... x^n/n!
。在这种情况下,n = 30
和x
的范围是-3到3.看起来很简单。然而,当试图用Java执行它时,我发现我感到困惑。
这个想法是为了循环运行两个。 x
迭代的外部循环和n
迭代的内部循环。这是迄今为止的代码:
double series = 1.0;
for (int x=-3; x<=3; x++)
{
for (int n=1; n<=x+30; n++)
{
series = series + (x^n)/n;
n*=n;
}
System.out.println(""+ x +"\t "+ (series+1));
}
非常感谢任何建议。
答案 0 :(得分:1)
您可能需要更加关注每个变量,并在循环内更改值以更好地验证您的代码。
你犯了一些错误:
以下代码可以更好地解决您的目的。
double series = 1.0;
double term = 1.0;
for (int x = -3; x <= 3; x++) {
series = 1.0;
term = 1.0;
for (int n = 1; n <= 30; n++) {
term = (term * x / n);
series += term;
}
System.out.println("" + x + "\t " + (series));
}
答案 1 :(得分:0)
你可以用这样的MATH.POW编写你的公式:
for (int x=-3; x<=3; x++)
{
for (int n=1; n<=x+30; n++)
{
series = series + (Math.pow(x,n)/n);
n*=n;
}
System.out.println(""+ x +"\t "+ (series+1));
}