首页 > 解决方案 > 如何使用 while 循环来近似 Pi 并接收用户的输入?

问题描述

这是我高中 comp sci 实验室的第一部分,我想知道是否可以就为什么它不起作用以及如何修复它获得一些意见?

“德国数学家戈特弗里德莱布尼茨开发了以下方法来近似 PI 的值:

Pi 的近似第 1 部分:编写一个程序,允许用户指定在此近似中使用的迭代次数并显示结果值。使用 while 循环来完成此操作。

样本输出:

您想要进行多少次迭代:1000

圆周率:3.140592653839794"

这是我目前拥有的代码。它无法正常运行,我也不知道为什么或如何修复它。现在我只是想让我的输出样本的输出。谢谢!

//define
    Scanner scnr = new Scanner(System.in);
    double pi = 0.0; 
    double n = 0.0; //number of the term starting from 0
    
    System.out.println("How many iterations would you like to do: ");
    n = scnr.nextInt();

    while (n <= n+1) {
        pi = (Math.pow(-1,n) * 4.0) / (2.0 * n + 1);
        
        System.out.println("pi: " + pi);

标签: javawhile-looppi

解决方案


这应该这样做:)

        Scanner scnr = new Scanner(System.in);
        double pi = 0.0; 
    
        System.out.println("How many iterations would you like to do: ");
        int n = scnr.nextInt();
        
        int i = 0;
        while (i < n) {
            
            pi += (Math.pow(-1,i) * 4.0) / (2.0 * i + 1);
            
            System.out.println("pi: " + pi);
            i++;
        }


推荐阅读