早教吧 育儿知识 作业答案 考试题库 百科 知识分享

求JAVA高手解决问题,本人是初学者,奉上本人所有金币1.编程求X的值X=1+1/(1*3)+1/(3*5)+….+1/(2n-1)*(2n+1)+….要求精确到0.000012.已知一个一个数组a={12,47,6,82,9,71,103,45,72}编程实现求最

题目详情
求JAVA高手解决问题,本人是初学者,奉上本人所有金币
1. 编程求X的值
X=1+1/(1*3)+1/(3*5)+….+1/(2n-1)*(2n+1)+….
要求精确到0.00001
2.已知一个一个数组a={12,47,6,82,9,71,103,45,72}
编程实现求最大值,最小值,求平均值,求大于平均值元素的个数,把数组按照从小到大排序。
▼优质解答
答案和解析
第一题和第二题都在一起写着呢,整个类都贴过来了,
第二题也有别人问过,具体解释可以去参考
import java.math.BigDecimal;
import java.util.Arrays;
publicclass Test {
publicstaticvoid main(String[] args) {
double x = 0.0d;
//求x的值
for (int i = 0; i < 10; i++) {
if(i == 0){
x = x + 1.0d;
}else{
x = x + 1.0d/((2*i-1)*(2*i+1));
}
}
//格式化输出,保留小数点后5位
BigDecimal b = new BigDecimal(x);
double f1 = b.setScale(5, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println("x的值:"+f1);
int[] a = {12,47,82,9,71,103,45,72};
int sum = 0;
double ava = 0.0d;
for (int i = 0; i < a.length; i++) {
sum=sum+a[i];
for (int j = i; j < a.length; j++) {
int temp = a[i];
if(a[i]>a[j]){
a[i] = a[j];
a[j] = temp;
}
}
}
ava = Double.parseDouble(sum+"")/a.length;
int count = 0;
for (int i = 0; i < a.length; i++) {
if(a[i]>ava){
count++;
}
}
System.out.println("最小的数是:"+a[0]);
System.out.println("最大的数是:"+a[a.length-1]);
System.out.println("平均数是:"+ava);
System.out.println("大于平均数的个数:"+count);
System.out.println("数组从小到大排列:"+Arrays.toString(a));
}
}