九年义务教育漏网之鱼@ 2022-09-18 01:30 采纳率: 33.3%
浏览 24
已结题

运行结果出了问题但我找不到问题所在请看一下

运行结果出了问题,但我找不到我的问题所在,请看一下,非常感谢
运行结果

img

img

  • 写回答

1条回答 默认 最新

  • 一束尘光 2022-09-18 08:24
    关注

    for循环中的初始条件,可以设置为第1项的值4/3,你这里定义的s相当于最终要求出的PI,条件判断应该是某一项(item)的值,而不是s(PI)

    public static void main(String[] args) {
        double x, y, pi, n = 1;
        double item;
    
        for (item = 2, x = 4, y = 3, pi = 2; item >= 1 + Math.pow(10, -6); n++, x = Math.pow(2 * n, 2), y = (2 * n - 1) * (2 * n + 1)) {
            item = x / y;
            pi *= item;
        }
    
        System.out.println(n);
        System.out.println(pi);
        System.out.println("运算结束");
     }
    

    输出结果如下,跳出循环的边界值越小,最终结果越精确

    502.0
    3.140026946105019
    运算结束
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月26日
  • 已采纳回答 9月18日
  • 创建了问题 9月18日