带有while循环的第一个函数:
<my-list>
相同的功能但使用for循环提供了另一种解决方案。
public static double sum(int n){
double sum = 0;
while (n!=0){
sum+=1.00/((2*n-1)*(2*n+1));
n--;
}
return sum;
}
函数计算系列:
1 /(1 * 3)+ ... + 1 /((2n + 1)*(2n-1))
由于某种原因,带有for循环的函数使得和越来越小,而while函数工作正常 为什么for循环解决方案不起作用?
答案 0 :(得分:6)
您的for
循环使用了错误的变量 - 它应该使用i
代替。
在while
循环中,您使用n
作为控件和当前所代表的值。您只需将for
循环更改为使用i
,因为它代表您当前正在迭代的值。
答案 1 :(得分:0)
您没有在for循环中执行n--
,因此存在差异。
您应该将其更改为:
public static double sum1(int n){
double sum = 0;
for (int i=n;i>0;i--){
sum+=1.00/((2*i-1)*(2*i+1));
}
return sum;
}