使用格雷戈里级数计算带极限的近似pi

时间:2019-09-13 05:46:27

标签: java pi approximation

这是我要解决的问题:

编写一个使用Gregory系列计算pi值的程序。程序的输入将是一个称为限制的十进制值。程序应通过对序列项求和,来计算pi的值,但是直到被求和项的值变得小于或等于limit的值时,程序才会终止pi的值。总结。因此,加到总和上的序列的最后一项是其值小于或等于limit的值的第一个项。 然后程序会打印出该点的pi的计算值,以及通过计算求和的实际项数。

这是输出的样子:

Input Limit: 0.005

Calculated Value of PI: 3.1659792728432157
No. of Terms Summed: 41

我的代码:

class Scratch {
    public static void main(String[] args) {

        int k = 1;
        double pi = 0.0;
        for (int term = 1; term < 50000; term++){
            double currVal = 0.0;
            if (term % 2 == 0) {
                currVal = (double) -4 / k;
            } else {
                currVal = (double) 4 / k;
            }

            pi = pi + currVal;
            if(((double)4/k) < 0.005){
                System.out.println(pi);
                System.out.println(term);
                break;
            }
            k = k + 2;

        }

    } 
 }

我的代码的输出:

3.144086415298761
401

请让我知道我哪里出错了?任何建议都将不胜感激。

0 个答案:

没有答案