关于#java#割圆术的问题

用Java语法,采用割圆术计算圆周率,即对一个圆先割出一个正方形,再割出4个等腰三角形,再割出8个等腰三角形,后面依此类推,把这些割出的图形面积相加即为圆的面积,然后除以圆的半径的平方,最终得到圆周率。编写一段java代码,可以运行?

请问你的问题在哪里呢?技术还是算法?

代码如下:

public class Test{
    public static void main(String[] args) {
        System.out.printf("圆周率为:");
        double b= 1;
        double result = Pi(b);
        System.out.printf("%f",result);
    }
    private static double Pi(double b) {
        int n = 6;
        double π=0;

        while (b>1e-6){
            n*=2;
            b = Math.sqrt(2-Math.sqrt(4-b*b));
            π = n*b/2;
        }
        return π;
    }
}