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

The*_*Guy 1 java

带有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;
}
Run Code Online (Sandbox Code Playgroud)

相同的功能,但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;
}
Run Code Online (Sandbox Code Playgroud)

函数计算系列:
1 /(1*3)+ ... + 1 /((2n + 1)*(2n-1))

由于某种原因,使用for循环的函数使得和越来越小而while函数工作正常.
为什么for循环解决方案不起作用?

Mak*_*oto 6

你的for循环使用了错误的变量 - 它应该是使用它i.

while循环中,您使用的n是控件当前表示的值.您只需要更改for要使用的循环i,因为它表示您当前正在迭代的值.