JAVA取π近似值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA取π近似值相关的知识,希望对你有一定的参考价值。

数列4*(1-1/3+1/5-1/7+.....)取近似值,取3.14159之前数列取多少项,求解释错误并改正
public class Q8
public static void main(String args[])
int i=0;
int a=1;
double he=0;
double x;
do
x=a/(2*i+1);
a=-a;
he=he+x;
System.out.print(4*he);
i=i+1;
while(4*he-3.14159>0.000001||4*he-3.14159<-0.0001);
System.out.print(i);


参考技术A

判断条件对不对啊,上了一天班头大,我有点晕了,反正中间逻辑肯定是没问题的,如果感觉不对,你就再改改while的判断条件就行了。

 public static void main(String args[])
    
        int i = 0;
        double a = 1;
        double he = 0;
        while (4 * he - 3.14159 > 0.000001 || 4 * he - 3.14159 < -0.0001)
        
            a = 1.0 / (2 * i + 1);
            if (i % 2 != 0)
            
                a = -a;
            
            he = he + a;
            i++;
        
        System.out.print("项数" + i);
    

参考技术B public class PI public static void main(String args[]) int i=1; int a=1; double he=0, pi; double x; do x=1D*a/i; // 这个地方 a和i,都是整数,结果也是整数 a=-a; he=he+x; pi=he*4; System.out.print(pi); System.out.print(" "); i=i+2; while(pi-3.14159>0.000001 || pi-3.14159<-0.0001); System.out.print(i); 参考技术C 这个百度知道已经有好多了啊。。
http://zhidao.baidu.com/link?url=rwlzOMH1fXs5tu1Y93GBbnwtsozsW-9I-bQrbrTN-cW2X1gu5NX3NFVwN09W-r69Sqvhwnw2c9I_9ATrL1zfJa
不用重复提问的

c语言:求π的近似值

用公式π/4=1-1/3+1/5-1/7...求π的近似值,直到发现某一项的绝对值小于10^6为止(该项不累加)

解:程序:

#include<stdio.h>

#include<math.h>

int main()

{

int sign = 1;

double pi = 0.0, n = 1.0, term = 1.0;//term表示当前项

while (fabs(term) >= 1e-6)

{

pi += term;

n += 2;

sign = -sign;

term = sign / n;

}

pi *= 4;

printf("pi=%10.8f\n", pi);

return 0;

}

结果:

pi=3.14159065

请按任意键继续. . .

本程序输出的结果是pi=3.14159065,虽然输出了8位小数,但是只有前5位小数3,14159是准确的,因为第7位已经小于10^-6,后面的项没有累加。

再看如下两个精度不同的程序:

程序1:

#include<stdio.h>

#include<math.h>

int main()

{

int sign=1;

int count = 0;

double pi = 0.0, n = 1.0, term = 1.0;//term表示当前项

while(fabs(term)>=1e-6)

{

count++;

pi += term;

n += 2;

sign = -sign;

term = sign / n;

}

pi *= 4;

printf("pi=%10.8f\n",pi);

printf("count=%d\n",count);

return 0;

}

结果:

pi=3.14159065

count=500000

请按任意键继续. . .

程序2:

#include<stdio.h>

#include<math.h>

int main()

{

int sign=1;

int count = 0;

double pi = 0.0, n = 1.0, term = 1.0;//term表示当前项

while(fabs(term)>=1e-8)//变化部分

{

count++;

pi += term;

n += 2;

sign = -sign;

term = sign / n;

}

pi *= 4;

printf("pi=%10.8f\n",pi);

printf("count=%d\n",count);

return 0;

}

结果:

pi=3.14159263

count=50000000

请按任意键继续. . .

精度不同,运行时间不同,程序2精度更高,但是运行次数是程序1的100倍。


本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1741580

以上是关于JAVA取π近似值的主要内容,如果未能解决你的问题,请参考以下文章

java运算中,如何引入π进行计算(希望能附上例子)?

编写程序用下面公式求π的近似值 π/4 ≈ 1- 1/3+1/5-1/7+…… 直到最后一项的绝对值小于10-7 为止

编写程序:计算π的近似值,π的计算公式为

编写程序:计算π的近似值,π的计算公式为

Java面向过程练习题6

c语言:求π的近似值