用Java写出[1456.5, 385, 188, 448, 945, 75, 179.15, 348.99, 371, 393, 70, 300, 183, 686, 75, 210, 401, 13.80] 从以上数组中挑出4个数字,要求这4个数字之和最接近2000
时间: 2023-09-30 17:05:37 浏览: 30
以下是Java代码实现:
```java
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
double[] nums = {1456.5, 385, 188, 448, 945, 75, 179.15, 348.99, 371, 393, 70, 300, 183, 686, 75, 210, 401, 13.80};
Arrays.sort(nums); // 先将数组从小到大排序
double sum = 0; // 累加和
for (int i = 0; i < 4; i++) {
sum += nums[i];
}
double closestSum = sum; // 最接近2000的累加和
for (int i = 0; i < nums.length - 3; i++) {
for (int j = i + 1; j < nums.length - 2; j++) {
for (int k = j + 1; k < nums.length - 1; k++) {
for (int l = k + 1; l < nums.length; l++) {
double tempSum = nums[i] + nums[j] + nums[k] + nums[l];
if (Math.abs(tempSum - 2000) < Math.abs(closestSum - 2000)) {
closestSum = tempSum;
}
}
}
}
}
System.out.println(closestSum); // 输出最接近2000的累加和
}
}
```
首先将数组从小到大排序,然后取前4个数字计算出它们的累加和。接下来使用四重循环,枚举所有可能的四个数字的组合方式,计算它们的累加和,并记录下最接近2000的累加和。最后输出最接近2000的累加和即可。