Pi迭代,通过用户输入显示pi的迭代量

时间:2016-09-26 21:24:52

标签: java pi

作业是 可以使用以下方法来近似Pi的值:      Pi / 4 = 1 - (1/3)+(1/5) - (1/7)+(1/9) - (1/11)+ ...

  

编写一个程序,允许用户指定此近似值中使用的迭代次数,并显示Pi的近似值。测试程序的小型,中型和大型迭代次数。

它编译但它没有给我我想要的答案。例如,当我输入1时,它给我1/3而不是8/3。当我几乎任何其他数字,它只是错误,我无法获得任何输出。

import java.util.*;
import java.io.*;

public class LabFiveUnitFour {
   public static void main(String[] args) {
      double n, pi=1, count=1, amount;
      Scanner input = new Scanner(System.in);

      System.out.println("How many pi iterations do you want?");
      amount = input.nextDouble();
      n = amount;

      do {
          pi = ((Math.pow(-1, n)) / (2 * n + 1));
      } while (!(count == amount));

      {
          n = n - 1;
          pi = pi + ((Math.pow(-1, n)) / (2 * n + 1));
          count++;
      }

      pi = 4 * (1 - pi);
      System.out.println(pi + "");
    }
}

1 个答案:

答案 0 :(得分:1)

你有一个do / while循环,它通过比较count和amount来控制,并且该循环的主体没有做任何修改这些变量的事情。结果将是循环永远不会退出。