java - JAVA中未知数的平均值
问题描述
我正在寻找从 1 到 10000 的完美数字以及结果的算术平均值。下面的代码提供了完美的数字(6、28、496、8128),但找不到它们的平均值的解决方案。任何帮助,将不胜感激。
public static void main(String[] args){
int min = 1;
int max = 10000;
for (min = 1; min <= max; min++) {
int sum = 0;
for (int e = 1; e < min; e++) {
if ((min % e) == 0) {
sum += e;
}
}
if (sum == min){
System.out.println(sum);
}
}
}
解决方案
要计算结果的平均值,您可以使用流:
public static void main(String[] args) {
int min = 1;
int max = 10000;
List<Integer> avg = new ArrayList<>();
for (min = 1; min <= max; min++) {
int sum = 0;
for (int e = 1; e < min; e++) {
if ((min % e) == 0) {
sum += e;
avg.add(e);
}
}
if (sum == min) {
System.out.println(sum);
}
}
//Rounded average result:
System.out.println("The result average is: " + Math.round(avg.stream()
.mapToInt(Integer::intValue)
.average()
.getAsDouble()));
//Or not rounded average result with two digits precision:
System.out.printf("The result average is: %.2f \n", avg.stream()
.mapToInt(Integer::intValue)
.average()
.getAsDouble());
}
推荐阅读
- javascript - Docker-Compose : 来自具有相同 Dockerfile 的本地图像的多个服务
- django-models - 如何为同一个项目选择多个人
- flutter - FireStore 读取失败,我不知道为什么
- r - 将函数结果插入表中
- angular - Jenkins 管道无法识别我的 Angular 项目
- python - 在 zip 文件中使用 pandas 提交作业
- reactjs - 在不使用状态的情况下响应组件的更改类
- java - 有没有办法在 Java 中只允许一个类型作为属性?
- prometheus - 是否可以抓取在同一台机器上运行的 prometheus 端点并将它们推送到静态 IP 的推送网关?
- javascript - @babel/plugin-proposal-optional-chaining 在 Vue.js 中不起作用