用for循环计算圆周率
公式:PI=(1-1/3+1/5-1/7+1/9……)*4循环次数越多,精确度越高,本例循环2000次。一道作业题,怎么想也想不出来.

解决方案 »

  1.   

    给你一个例子吧,不知道对不对
    public class Pi { public static void main(String[] args) {
    float pi = 1.0f;
    for( float i = 3; i < 2000; i+=2) {
    pi -= 1/i;
    i += 2;
    pi += 1/i;
    }
    System.out.println(pi * 4);
    }
    }
      

  2.   

    public class PI {
    public static void main(String[] args) {
    double pi4 = 0;
    int sign = -1;
    for (int i = 1; i <= 2000; i++) {
    sign = -sign;
    pi4 += (sign * 1.0) / (2 * i - 1);
    }
    System.out.println(pi4 * 4);
    System.out.println(Math.PI);
    }
    }循环 2000 次的精度相差很多。
      

  3.   

    public Test{
    public static void main(String[] args){
    double pi = 0;
    int sin = 0;
    for(int i = 1; i <= 2000 ; i++){
    if(i%2==0){
    sin = -1;
    }else{
    sin = 1;
    }
    pi = pi + (sin * ((float)1 / i)); 
    }
    pi = pi * 4;
    System.out.println(pi);
    }
    }
    没环境,没有测试~_~!
      

  4.   


    public class PI
    {
    public static void main(String args[])
    {
    System.out.println(getPI(2000));
    } static double getPI(int c)
    {
    double f1;
    f1=1;
    for (int i=2;i<=c;i++)
    {
    if (i % 2==0)
    f1=f1-1.0/(2*i-1);
    else
    f1=f1+1.0/(2*i-1);
    }
    return f1*4;
    }
    }
      

  5.   

     二楼对符号的处理很巧妙  
    我只能这么处理   (1/2n-1)*Math.pow(-1,n+1)