为了解新学期学生暴涨的问题,小乐村要建立所新学校,考虑到学生上学安全问题,需要所有学生家到学校的距离最短。 假设学校和所有学生家都走在一条直线之上,请问学校建立在什么位置,能使得到学校到各个学生家的距离和最短。
输入描述:
第一行:整数n取值范围[1,1000],表示有n户家庭。
第二行:一组整数m取值范围[0,10000],表示每户家庭的位置,所有家庭的位置都不相同。
输出描述:
一个整数,确定的学校的位置,如果有多个位置,则输出最小的。
输入
5
0 20 40 10 30
输出
20
- public class AddressNew {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- System.out.print("输入用户:");
- int n = sc.nextInt();
- sc.nextLine(); // 这里使用nextLine()来接收上面的'\n'
- System.out.print("输入" + n + "个所有家庭位置:");
- String[] strs = sc.nextLine().split(" ");
- //字符串数组转换成整数数组
- int[] arr = Arrays.asList(strs).stream().mapToInt(Integer::parseInt).toArray();
- //(1)排序
- Arrays.sort(arr);
- System.out.println("排序后数据:"+Arrays.toString(arr));
- //(2)最小距离(求中位数)
- int min = 0;
-
- //判断是偶数还是奇数,
- if (n % 2 == 0) {
- min = arr[n / 2 - 1];
- } else {
- min = arr[n/2];
- }
- System.out.println("最小距离:" + min);
- }
-
- }