空间复杂度为O(3),时间复杂度为O(n);平均值保留一位小数,如果没有正数则平均值输出0.0
/**
* 计负均正,空间复杂度为O(3),时间复杂度为O(n)
**/
private static void calc(int[] arr) {
int negCount = 0;
int posCount = 0;
double sum = 0.0;
for (int i : arr) {
if (i < 0) {
negCount++;
} else if (i > 0) {
sum += i;
posCount++;
}
}
System.out.println("负数个数:" + negCount);
if (sum > 0) {
double res = sum / posCount;
BigDecimal bd = new BigDecimal(res);
System.out.println("正数平均值:" + bd.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
} else {
System.out.println("正数平均值:0");
}
}