当前位置:Gxlcms > mysql > 有N个正实数(注意是实数,大小升序排列)x1,x2...xN,另有一

有N个正实数(注意是实数,大小升序排列)x1,x2...xN,另有一

时间:2021-07-01 10:21:17 帮助过:45人阅读

import java.util.Scanner; //有N个正实数(注意是实数,大小升序排列) x1 , x2 ... xN,另有一个实数M。 需要选出若干个x,使这几个x的和与 M 最接近。 public class JieJin { public static void main(String args[]) { double[] l = new double[] { 1.1, 1

import java.util.Scanner;

//有N个正实数(注意是实数,大小升序排列) x1 , x2 ... xN,另有一个实数M。 需要选出若干个x,使这几个x的和与 M 最接近。

public class JieJin {

public static void main(String args[]) {

double[] l = new double[] { 1.1, 1.5, 1.6, 2.1, 2.2, 2.8, 3.8, 4.1 };

Scanner cin = new Scanner(System.in);
System.out.println("输入x:");
int x = cin.nextInt();
System.out.println("输入M:");
double M = cin.nextDouble();
double sum = 9999;

int start = 0;

for (int i = 0; i < l.length - 1; i++) {
if (sum(l, i, x, M) < sum) {
sum = sum(l, i, x, M);
start = i;
}
if (x + i >= l.length)
break;
}

System.out.println(start);

}

private static double sum(double[] l, int i, int x, double M) {
double sum = 0;
for (int k = 0; k < x; k++) {
sum = sum + chazhi(l[i], M);
i++;
if (i >= l.length)
break;

}
return sum;
}

private static double chazhi(double a, double b) {
if (a - b > 0)
return a - b;
else
return b - a;
}

}

人气教程排行