非常基本的功能给while循环和for循环提供了不同的答案

时间:2015-12-29 19:00:32

标签: java

带有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循环解决方案不起作用?

2 个答案:

答案 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; 
}