第一个带有 while 循环的函数:
public static double sum(int n){
double sum = 0;
while (n!=0){
sum+=1.00/((2*n-1)*(2*n+1));
n--;
}
return sum;
}
相同的函数,但带有 for 循环,给出了另一种解决方案。
public static double sum1(int n){
double sum = 0;
for (int i=1;i<=n;i++){
sum+=1.00/((2*n-1)*(2*n+1));
}
return sum;
}
函数计算序列:
1/(1*3) +...+ 1/((2n+1)*(2n-1))
出于某种原因,带有 for 循环的函数使总和越来越小,而 while 函数工作正常。
为什么 for 循环解决方案不起作用?
最佳答案
您的 for
循环使用了错误的变量 - 它应该使用 i
来代替。
在您的 while
循环中,您使用 n
作为控件 和 当前表示的值。您只需将 for
循环更改为使用 i
,因为它表示您当前迭代的值。
关于java - 非常基本的功能用 while 循环和 for 循环给出不同的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34517311/