Pi迭代,显示用户输入的pi的迭代次数

问题描述:

赋值为 以下方法可用于近似Pi的值:Pi/4 = 1-(1/3)+(1/5) - (1/7)+(1/9) - (1/11)+ ...Pi迭代,显示用户输入的pi的迭代次数

编写一个程序,允许用户指定在此近似值中使用的迭代次数并显示近似值的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 + ""); 
    } 
} 
+2

你有一个do-while循环和一个while循环的奇怪混搭。你想做什么? – azurefrog

+0

通常,执行固定次数的循环由'for'循环处理。 – 4castle

+0

你为什么要将计数/数量定义为双打?你只是将它们用作整数。允许'2.3'迭代没有任何意义。 –

你有做/而通过比较计数和量和循环体控制回路没有做任何事情来修改任何这些变量的。结果将是循环永远不会退出。