通过迭代JAVA近似pi

时间:2014-09-25 15:27:45

标签: java pi

我试图通过迭代来近似pi。这只是代码的一部分。

我试图将这个等式放入java:pi = 4(1 - 1/3 + 1/5 - 1/7 + 1/9 + ... +(( - 1)^(i + 1) ))/(2i - 1))。我遇到的问题是这个等式的总和(在我的代码中说明)。如果用户继续输入y,程序应该将i乘以2并计算pi直到用户输入n,然后返回主菜单。

    else if(input == 4)
    {
        System.out.print("i=1 pi=4.0\tWould you like to continue? (y|n) ");     
        char y = keyboard.next().charAt(0);
        if (y =='y')
        {
            for (int i=2; i<=1000; i=i*2)
            {
                int sum = 0;
                double pi =4 * (Math.pow(-1, i+1)/(2*i-1));
                //Right here, how do I modify it to get a sum across a multitude of i's?
                System.out.print("i=" + i + " " + "pi" + "=" + pi + "\tcontinue (y|n)? " );
                keyboard.next().charAt(0);
            }
        }   
        else
        {

        }

1 个答案:

答案 0 :(得分:0)

我认为你的问题是使用i的求和方程与循环计算的编程方法之间的差异。这样的事情将循环i s加/减分数,然后将它们全部乘以4。

boolean plus = true
double sum = 0;
for (double i=1.0; i<=1000; i+=2.0)
{
    if (plus) {
        sum += 1.0/i;
        plus = false;
    } else {
        sum -= 1.0/i;
        plus = true;
    }
}
sum *= 4;