java - 非常基本的功能用 while 循环和 for 循环给出不同的答案

标签 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;
}

相同的函数,但带有 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/

相关文章:

java - 在java中使用缓冲读取器读取行时获取备用列名?

java - GridLayout 中的文本字段宽度不会改变

java - Java中通过对象变量值获取对象

java - WAR 不会部署到 Tomcat 7.0.19

java - Java 中是否有等同于 JSON.Net 的东西?

JavaFX 虚拟键盘重叠节点

java - java HH :mm and hh:mm on SimpleDateFormat之间的区别

用于从 websphere mq 获取组消息的 Java 消息选择器

java - 在 fragment 的静态函数中使用对象创建 Hashmap

java - 如何避免在java中使用带有大量变量的if语句