java 圆周率。
发布网友
发布时间:2022-05-04 22:35
我来回答
共2个回答
热心网友
时间:2022-06-26 15:42
圆周率的算法
PI=(1-1/3+1/5-1/7+1/9……)*4循环次数越多,精确度越高
像你说的要计算 10000 位小数,普通的算法是无法满足的,一般需要大型计算机
参考代码:
public class Test1 {
public static void main(String args[]) {
long time = System.currentTimeMillis();
Pi pi = new Pi(200000000);
pi.comput();
System.out.println(pi.getPi());
System.out.println("消耗时间>>" + (System.currentTimeMillis() - time));
}
}
class Pi {
private double pi;
private int count;
public Pi() {
}
public Pi(int count) {
this.count = count;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public double getPi() {
return pi;
}
public void comput() {
pi = 1;
int max = count * 2 + 1;
for (int i = 3; i <= max; i = i + 4) {
pi -= 1d / i;
}
for (int i = 5; i <= max; i = i + 4) {
pi += 1d / i;
}
pi *= 4;
}
}
热心网友
时间:2022-06-26 15:42
用这个公式π/4=1-1/3+1/5-1/7+1/9-1/11+……
然后用1000个元素的数组来记录每位的数字,自己写加法进位。