作业帮 > 综合 > 作业

谁能帮我做一下这道题 JAVA

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 09:46:42
谁能帮我做一下这道题 JAVA
定义一个数学工具类完成以下功能:
用下面的公式求π值,
一 π/4≈ 1/1-1/3+1/5-1/7+…直到最后一项的绝对值小于10的负7次方为止。
二 要求定义一个函数求阶乘,在main函数中调用此函数,求4!+5!+6!。
这是两道题吧 这么简单都没人帮 我来拿分儿了
求pi的:
public class Pi {
private double pi = (double) 0;
public Pi() {
this.calculate();
}
private void calculate() {
double a = (double) 1;
double sum = (double) 0;
boolean flag = true;
while (1.0 / a > 1e-7) {
sum = flag ? sum + 1 / a : sum - 1 / a;
a += 2;
flag = !flag;
}
pi = sum * 4;
}
public double getPi() {
return pi;
}
public static void main(String[] args) {
System.out.println(new Pi().getPi());
}
}
可能是你公式的问题,这个公式我记得精度不是最高的那个,求出来的精度不是很好
阶乘的:
public class Factorial {
long result = 1;
public Factorial(int max) {
this.calculate(max);
}
private void calculate(int max) {
result = result * max;
if (max > 1) {
calculate(max - 1);
}
}
public long getResult() {
return result;
}
public static void main(String[] args) {
long sum = 0;
for (int i = 4; i < 7; i++) {
sum += new Factorial(i).getResult();
}
System.out.println(sum);
}
}
我这个写的比较简单,求阶乘的算法也有很多,比如你可以求出3的以后再求4,就直接成4就好了,还可以优化...